From 84d515f23e4e4db94cde763e737613f7bfa26358 Mon Sep 17 00:00:00 2001 From: Blankj <625783482@qq.com> Date: Sat, 21 Apr 2018 22:49:36 +0800 Subject: [PATCH] see 04/21 log --- utilcode/README-CN.md | 7 ++++ utilcode/README.md | 7 ++++ .../com/blankj/utilcode/util/IntentUtils.java | 20 ++---------- .../com/blankj/utilcode/util/UriUtils.java | 32 +++++++++++++++++++ 4 files changed, 49 insertions(+), 17 deletions(-) create mode 100644 utilcode/src/main/java/com/blankj/utilcode/util/UriUtils.java diff --git a/utilcode/README-CN.md b/utilcode/README-CN.md index c9c6179b..16cab18f 100644 --- a/utilcode/README-CN.md +++ b/utilcode/README-CN.md @@ -654,6 +654,11 @@ showCustomLong : 显示长时自定义吐司 cancel : 取消吐司显示 ``` +* ### Uri 相关 -> [UriUtils.java][uri.java] +``` +getUriForFile: 获取文件 URI +``` + * ### 压缩相关 -> [ZipUtils.java][zip.java] -> [Test][zip.test] ``` zipFiles : 批量压缩文件 @@ -771,5 +776,7 @@ getComments : 获取压缩文件中的注释链表 [toast.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/util/ToastUtils.java [toast.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/app/src/main/java/com/blankj/androidutilcode/feature/core/toast/ToastActivity.java +[uri.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/util/UriUtils.java + [zip.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/util/ZipUtils.java [zip.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/util/ZipUtilsTest.java diff --git a/utilcode/README.md b/utilcode/README.md index cf6844a9..d4c14ae8 100644 --- a/utilcode/README.md +++ b/utilcode/README.md @@ -654,6 +654,11 @@ showCustomLong cancel ``` +* ### About Uri -> [UriUtils.java][uri.java] +``` +getUriForFile +``` + * ### About Zip -> [ZipUtils.java][zip.java] -> [Test][zip.test] ``` zipFiles @@ -771,5 +776,7 @@ getComments [toast.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/util/ToastUtils.java [toast.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/app/src/main/java/com/blankj/androidutilcode/feature/core/toast/ToastActivity.java +[uri.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/util/UriUtils.java + [zip.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/util/ZipUtils.java [zip.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/util/ZipUtilsTest.java diff --git a/utilcode/src/main/java/com/blankj/utilcode/util/IntentUtils.java b/utilcode/src/main/java/com/blankj/utilcode/util/IntentUtils.java index cd887b73..94cd0b94 100644 --- a/utilcode/src/main/java/com/blankj/utilcode/util/IntentUtils.java +++ b/utilcode/src/main/java/com/blankj/utilcode/util/IntentUtils.java @@ -3,11 +3,9 @@ package com.blankj.utilcode.util; import android.content.ComponentName; import android.content.Intent; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.provider.MediaStore; import android.support.annotation.RequiresPermission; -import android.support.v4.content.FileProvider; import java.io.File; @@ -76,15 +74,9 @@ public final class IntentUtils { public static Intent getInstallAppIntent(final File file, final boolean isNewTask) { if (file == null) return null; Intent intent = new Intent(Intent.ACTION_VIEW); - Uri data; + Uri data = UriUtils.getUriForFile(file); + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); String type = "application/vnd.android.package-archive"; - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - data = Uri.fromFile(file); - } else { - intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - String authority = Utils.getApp().getPackageName() + ".utilcode.provider"; - data = FileProvider.getUriForFile(Utils.getApp(), authority, file); - } intent.setDataAndType(data, type); return getIntent(intent, isNewTask); } @@ -154,14 +146,8 @@ public final class IntentUtils { final boolean isNewTask) { if (file == null) return null; Intent intent = new Intent(Intent.ACTION_VIEW); - Uri data; + Uri data = UriUtils.getUriForFile(file); String type = "application/vnd.android.package-archive"; - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - data = Uri.fromFile(file); - } else { - intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - data = FileProvider.getUriForFile(Utils.getApp(), authority, file); - } intent.setDataAndType(data, type); return getIntent(intent, isNewTask); } diff --git a/utilcode/src/main/java/com/blankj/utilcode/util/UriUtils.java b/utilcode/src/main/java/com/blankj/utilcode/util/UriUtils.java new file mode 100644 index 00000000..43650e75 --- /dev/null +++ b/utilcode/src/main/java/com/blankj/utilcode/util/UriUtils.java @@ -0,0 +1,32 @@ +package com.blankj.utilcode.util; + +import android.net.Uri; +import android.os.Build; +import android.support.v4.content.FileProvider; + +import java.io.File; + +/** + *
+ *     author: Blankj
+ *     blog  : http://blankj.com
+ *     time  : 2018/04/20
+ *     desc  : uri 相关
+ * 
+ */ +public final class UriUtils { + + private UriUtils() { + throw new UnsupportedOperationException("u can't instantiate me..."); + } + + public static Uri getUriForFile(final File file) { + if (file == null) return null; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + String authority = Utils.getApp().getPackageName() + ".utilcode.provider"; + return FileProvider.getUriForFile(Utils.getApp(), authority, file); + } else { + return Uri.fromFile(file); + } + } +} -- GitLab