Android:使用第三方应用程序打开私人文件

woojoo666

我正在制作一个可从Internet下载文件并允许用户使用第三方应用程序打开这些文件的应用程序。我使用将这些文件存储在我的私有应用程序目录中getFilesDir()

但是,似乎这些文件无法被第三方应用程序访问,因为当我尝试打开它们时(使用像这样的第三方应用程序选择器),它无法打开该文件。我是否需要启用权限才能与其他应用程序共享文件?

编辑:似乎要使用File Provider,您需要指定要为其提供访问权限的3rd-party-app的程序包名称。这是正确的,还是有一种解决方法来提供常规的第三方访问?

麦克尔·帕斯夸尔

您有两个选择。

将应用程序注册为FileProvider

您在Android文档中拥有完整且更新的示例:https : //developer.android.com/reference/android/support/v4/content/FileProvider.html

如果要提供对任何第三方应用程序的访问权限,可以使用以下解决方法:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
(...)
List<ResolveInfo> resInfoList = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : resInfoList) {
    String packageName = resolveInfo.activityInfo.packageName;
    context.grantUriPermission(packageName, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
}

将文件保存在大容量存储单元(sdcard)中

例如:

File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/newDir");
dir.mkdirs();
File file = new File(dir, "filename");

FileOutputStream f = new FileOutputStream(file);
...

选择哪一个

这取决于您的目标。

如果您希望用户通过usb来访问文件,甚至在卸载您的应用程序后也可以使它们可用,则不要将这些文件的“已用空间”计数添加到您的应用程序中,...单位方式”是要走的路。

如果您希望这些文件“捆绑”到您的应用程序,仅在安装您的应用程序时可用,只能通过您的应用程序访问,...“文件提供者方式”是您可以使用的方式。

在Android中,如果不是明智的数据,则最好使用“大容量存储单元方式”。Android用户不喜欢“链” /限制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android:使用第三方应用程序打开私人文件

来自分类Dev

跟踪第三方应用程序的使用

来自分类Dev

如何在不使用第三方应用程序的情况下打开iBook文件?

来自分类Dev

如何使用第三方应用程序在 Dropbox 中添加文件?

来自分类Dev

Yammer第三方应用程序访问

来自分类Dev

Bash:如何确定第三方应用程序是否打开了终端

来自分类Dev

安装后允许我的Android应用程序使用第三方扩展程序/插件-低功耗蓝牙

来自分类Dev

Android广播到特定的第三方应用程序

来自分类Dev

如何在第三方应用程序中屏蔽广告:Android

来自分类Dev

Android第三方导致“未安装应用程序”错误

来自分类Dev

在Eclipse RCP Tycho应用程序中使用第三方库

来自分类Dev

如何使用django-contact-form(第三方应用程序)?

来自分类Dev

如何使用浓缩咖啡测试第三方应用程序

来自分类Dev

如何从yii框架到我的第三方应用程序使用会话

来自分类Dev

使用第三方库(带有反射)的.NET应用程序。

来自分类Dev

在Windows桌面应用程序中使用第三方C ++库

来自分类Dev

如何使用django-contact-form(第三方应用程序)?

来自分类Dev

如何使用意式浓缩咖啡测试第三方应用程序

来自分类Dev

使用第三方库(带有反射)的.NET应用程序。

来自分类Dev

使用PhpStorm调试对PHP脚本的第三方应用程序调用

来自分类Dev

使用Angular-CLI安装第三方应用程序

来自分类Dev

在 NPM 和 Javascript 中使用第三方库导致应用程序膨胀

来自分类Dev

如何让我的应用程序使用 Visual Studio 找到第三方 DLL?

来自分类Dev

使用表设计进行 SQL 连接查询的第三方应用程序 - SQL

来自分类Dev

部署使用第三方 COM (Activex) 对象的 C# 应用程序导致应用程序崩溃

来自分类Dev

Django:将第三方应用程序用作Django应用程序

来自分类Dev

如何制作第三方组件的DCU文件,而不是在应用程序目录中生成该文件?

来自分类Dev

在Windows PC上卸载应用程序时,使用第三方卸载程序的背后原理是什么?

来自分类Dev

如何制作第三方组件的DCU文件,而不在应用程序目录中生成?

Related 相关文章

  1. 1

    Android:使用第三方应用程序打开私人文件

  2. 2

    跟踪第三方应用程序的使用

  3. 3

    如何在不使用第三方应用程序的情况下打开iBook文件?

  4. 4

    如何使用第三方应用程序在 Dropbox 中添加文件?

  5. 5

    Yammer第三方应用程序访问

  6. 6

    Bash:如何确定第三方应用程序是否打开了终端

  7. 7

    安装后允许我的Android应用程序使用第三方扩展程序/插件-低功耗蓝牙

  8. 8

    Android广播到特定的第三方应用程序

  9. 9

    如何在第三方应用程序中屏蔽广告:Android

  10. 10

    Android第三方导致“未安装应用程序”错误

  11. 11

    在Eclipse RCP Tycho应用程序中使用第三方库

  12. 12

    如何使用django-contact-form(第三方应用程序)?

  13. 13

    如何使用浓缩咖啡测试第三方应用程序

  14. 14

    如何从yii框架到我的第三方应用程序使用会话

  15. 15

    使用第三方库(带有反射)的.NET应用程序。

  16. 16

    在Windows桌面应用程序中使用第三方C ++库

  17. 17

    如何使用django-contact-form(第三方应用程序)?

  18. 18

    如何使用意式浓缩咖啡测试第三方应用程序

  19. 19

    使用第三方库(带有反射)的.NET应用程序。

  20. 20

    使用PhpStorm调试对PHP脚本的第三方应用程序调用

  21. 21

    使用Angular-CLI安装第三方应用程序

  22. 22

    在 NPM 和 Javascript 中使用第三方库导致应用程序膨胀

  23. 23

    如何让我的应用程序使用 Visual Studio 找到第三方 DLL?

  24. 24

    使用表设计进行 SQL 连接查询的第三方应用程序 - SQL

  25. 25

    部署使用第三方 COM (Activex) 对象的 C# 应用程序导致应用程序崩溃

  26. 26

    Django:将第三方应用程序用作Django应用程序

  27. 27

    如何制作第三方组件的DCU文件,而不是在应用程序目录中生成该文件?

  28. 28

    在Windows PC上卸载应用程序时,使用第三方卸载程序的背后原理是什么?

  29. 29

    如何制作第三方组件的DCU文件,而不在应用程序目录中生成?

热门标签

归档