From aab709d8f89d2b28a971c3876d38bdbe8ae09e46 Mon Sep 17 00:00:00 2001 From: smuyyh <352091626@qq.com> Date: Thu, 16 Mar 2017 17:16:55 +0800 Subject: [PATCH] =?UTF-8?q?V=201.3.8=20=E8=A7=A3=E5=86=B3Provider=E5=86=B2?= =?UTF-8?q?=E7=AA=81=E5=AF=BC=E8=87=B4=E5=85=B6=E4=BB=96app=E4=B9=9F?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E8=AF=A5=E5=BA=93=E5=90=8E=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- library/build.gradle | 6 +- library/src/main/AndroidManifest.xml | 8 +- .../yuyh/library/imgsel/ImgSelActivity.java | 4 +- .../yuyh/library/imgsel/ImgSelFragment.java | 2 +- .../yuyh/library/imgsel/utils/FileUtils.java | 229 +----------------- 6 files changed, 25 insertions(+), 228 deletions(-) diff --git a/README.md b/README.md index bb6178b..e5dcc19 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,13 @@ Android 图片选择器。充分自由定制,极大程度简化使用,支持 ## 依赖 ``` dependencies { - compile 'com.yuyh.imgsel:library:1.3.7' + compile 'com.yuyh.imgsel:library:1.3.8' } ``` ## 版本 -**V1.3.7 图片裁剪适配android-7.0** +**V1.3.8 图片裁剪适配android-7.0 解决Provider冲突** ## 注意事项 diff --git a/library/build.gradle b/library/build.gradle index 26de998..ce0ca47 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "1.3.7" // 版本号 +version = "1.3.8" // 版本号 android { compileSdkVersion 23 @@ -11,8 +11,8 @@ android { defaultConfig { minSdkVersion 8 targetSdkVersion 23 - versionCode 15 - versionName "1.3.7" + versionCode 16 + versionName "1.3.8" } buildTypes { release { diff --git a/library/src/main/AndroidManifest.xml b/library/src/main/AndroidManifest.xml index 9ab3566..77c3e0a 100644 --- a/library/src/main/AndroidManifest.xml +++ b/library/src/main/AndroidManifest.xml @@ -10,14 +10,18 @@ android:name=".ImgSelActivity" android:theme="@style/SelTheme" /> + + + android:resource="@xml/provider_paths" /> diff --git a/library/src/main/java/com/yuyh/library/imgsel/ImgSelActivity.java b/library/src/main/java/com/yuyh/library/imgsel/ImgSelActivity.java index d2b89bb..3a0b91c 100644 --- a/library/src/main/java/com/yuyh/library/imgsel/ImgSelActivity.java +++ b/library/src/main/java/com/yuyh/library/imgsel/ImgSelActivity.java @@ -212,9 +212,9 @@ public Uri getImageContentUri(File imageFile) { String filePath = imageFile.getAbsolutePath(); Cursor cursor = getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, - new String[] { MediaStore.Images.Media._ID }, + new String[]{MediaStore.Images.Media._ID}, MediaStore.Images.Media.DATA + "=? ", - new String[] { filePath }, null); + new String[]{filePath}, null); if (cursor != null && cursor.moveToFirst()) { int id = cursor.getInt(cursor diff --git a/library/src/main/java/com/yuyh/library/imgsel/ImgSelFragment.java b/library/src/main/java/com/yuyh/library/imgsel/ImgSelFragment.java index d6e87dd..55f3558 100644 --- a/library/src/main/java/com/yuyh/library/imgsel/ImgSelFragment.java +++ b/library/src/main/java/com/yuyh/library/imgsel/ImgSelFragment.java @@ -345,7 +345,7 @@ private void showCameraAction() { FileUtils.createFile(tempFile); Uri uri = FileProvider.getUriForFile(getActivity(), - BuildConfig.APPLICATION_ID + ".provider", tempFile); + FileUtils.getApplicationId(getActivity()) + ".provider", tempFile); List resInfoList = getActivity().getPackageManager() .queryIntentActivities(cameraIntent, PackageManager.MATCH_DEFAULT_ONLY); diff --git a/library/src/main/java/com/yuyh/library/imgsel/utils/FileUtils.java b/library/src/main/java/com/yuyh/library/imgsel/utils/FileUtils.java index 50a01a7..c72f7f8 100644 --- a/library/src/main/java/com/yuyh/library/imgsel/utils/FileUtils.java +++ b/library/src/main/java/com/yuyh/library/imgsel/utils/FileUtils.java @@ -1,19 +1,11 @@ package com.yuyh.library.imgsel.utils; import android.content.Context; -import android.content.res.AssetManager; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.os.Environment; -import java.io.BufferedReader; import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.channels.FileChannel; -import java.text.DecimalFormat; /** * @author yuyh. @@ -91,216 +83,17 @@ public static String createFile(File file) { return ""; } - public static String getImageCachePath(String path){ - return createDir(path); - } - - /** - * 获取图片缓存目录 - * - * @return 创建失败, 返回"" - */ - public static String getImageCachePath(Context context) { - String path = createDir(createRootPath(context) + File.separator + "img" + File.separator); - return path; - } - - /** - * 获取图片裁剪缓存目录 - * - * @return 创建失败, 返回"" - */ - public static String getImageCropCachePath(Context context) { - String path = createDir(createRootPath(context) + File.separator + "imgCrop" + File.separator); - return path; - } - - /** - * 将内容写入文件 - * - * @param filePath eg:/mnt/sdcard/demo.txt - * @param content 内容 - */ - public static void writeFileSdcard(String filePath, String content, boolean isAppend) { - try { - FileOutputStream fout = new FileOutputStream(filePath, isAppend); - byte[] bytes = content.getBytes(); - fout.write(bytes); - fout.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * 打开Asset下的文件 - * - * @param context - * @param fileName - * @return - */ - public static InputStream openAssetFile(Context context, String fileName) { - AssetManager am = context.getAssets(); - InputStream is = null; - try { - is = am.open(fileName); - } catch (IOException e) { - e.printStackTrace(); - } - return is; - } - - /** - * 获取Raw下的文件内容 - * - * @param context - * @param resId - * @return 文件内容 - */ - public static String getFileFromRaw(Context context, int resId) { - if (context == null) { - return null; - } - - StringBuilder s = new StringBuilder(); - try { - InputStreamReader in = new InputStreamReader(context.getResources().openRawResource(resId)); - BufferedReader br = new BufferedReader(in); - String line; - while ((line = br.readLine()) != null) { - s.append(line); - } - return s.toString(); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - /** - * 文件拷贝 - * - * @param src 源文件 - * @param desc 目的文件 - */ - public static void fileChannelCopy(File src, File desc) { - FileInputStream fi = null; - FileOutputStream fo = null; - try { - fi = new FileInputStream(src); - fo = new FileOutputStream(desc); - FileChannel in = fi.getChannel();//得到对应的文件通道 - FileChannel out = fo.getChannel();//得到对应的文件通道 - in.transferTo(0, in.size(), out);//连接两个通道,并且从in通道读取,然后写入out通道 - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (fo != null) fo.close(); - if (fi != null) fi.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - /** - * 转换文件大小 - * - * @param fileLen 单位B - * @return - */ - public static String formatFileSizeToString(long fileLen) { - DecimalFormat df = new DecimalFormat("#.00"); - String fileSizeString = ""; - if (fileLen < 1024) { - fileSizeString = df.format((double) fileLen) + "B"; - } else if (fileLen < 1048576) { - fileSizeString = df.format((double) fileLen / 1024) + "K"; - } else if (fileLen < 1073741824) { - fileSizeString = df.format((double) fileLen / 1048576) + "M"; - } else { - fileSizeString = df.format((double) fileLen / 1073741824) + "G"; - } - return fileSizeString; - } - - /** - * 删除指定文件 - * - * @param file - * @return - * @throws IOException - */ - public static boolean deleteFile(File file) throws IOException { - return deleteFileOrDirectory(file); - } - - /** - * 删除指定文件,如果是文件夹,则递归删除 - * - * @param file - * @return - * @throws IOException - */ - public static boolean deleteFileOrDirectory(File file) throws IOException { - try { - if (file != null && file.isFile()) { - return file.delete(); - } - if (file != null && file.isDirectory()) { - File[] childFiles = file.listFiles(); - // 删除空文件夹 - if (childFiles == null || childFiles.length == 0) { - return file.delete(); - } - // 递归删除文件夹下的子文件 - for (int i = 0; i < childFiles.length; i++) { - deleteFileOrDirectory(childFiles[i]); - } - return file.delete(); - } - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - /*** - * 获取文件扩展名 - * - * @param filename 文件名 - * @return - */ - public static String getExtensionName(String filename) { - if ((filename != null) && (filename.length() > 0)) { - int dot = filename.lastIndexOf('.'); - if ((dot > -1) && (dot < (filename.length() - 1))) { - return filename.substring(dot + 1); - } - } - return filename; - } - - /** - * 获取文件内容 - * - * @param path - * @return - */ - public static String getFileOutputString(String path) { + public static String getApplicationId(Context appContext) throws IllegalArgumentException { + ApplicationInfo applicationInfo = null; try { - BufferedReader bufferedReader = new BufferedReader(new FileReader(path), 8192); - StringBuilder sb = new StringBuilder(); - String line = null; - while ((line = bufferedReader.readLine()) != null) { - sb.append("\n").append(line); + applicationInfo = appContext.getPackageManager().getApplicationInfo(appContext.getPackageName(), PackageManager.GET_META_DATA); + if (applicationInfo == null) { + throw new IllegalArgumentException(" get application info = null, has no meta data! "); } - bufferedReader.close(); - return sb.toString(); - } catch (IOException e) { - e.printStackTrace(); + LogUtils.d(appContext.getPackageName() + " " + applicationInfo.metaData.getString("APP_ID")); + return applicationInfo.metaData.getString("APP_ID"); + } catch (PackageManager.NameNotFoundException e) { + throw new IllegalArgumentException(" get application info error! ", e); } - return null; } }