如何使用支持FileProvider将内容分享给其他应用程序?
我正在寻找一种方法,使用Android支持库的FileProvider正确地与外部应用程序共享(而不是OPEN)内部文件。
按照文档上的示例,
<provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.android.supportv4.my_files" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/my_paths" /></provider>
并使用ShareCompat将文件共享给其他应用程序,如下所示:
ShareCompat.IntentBuilder.from(activity).setStream(uri) // uri from FileProvider.setType("text/html").getIntent().addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
不起作用,因为FLAG_GRANT_READ_URI_PERMISSION仅授予data
对intent 指定的Uri的权限,而不授予EXTRA_STREAM
extra 的值(由set设置setStream
)。
我试图通过设置成安全android:exported
到true
的供应商,但FileProvider
在内部检查,如果本身是出口,所以时,它抛出一个异常。
心有法竹
相关分类