M'h*_*med 8 provider android android-contentresolver android-fileprovider
是否可以将FileProvider用于其他应用程序?
的manifest.xml
...
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.myapp.fileprovider"
android:exported="true"
android:grantUriPermissions="false"
android:permission="com.example.filesvisible.permission.READ" >
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filespath" />
</provider>
...
Run Code Online (Sandbox Code Playgroud)
来自doc:
false:提供程序不可用于其他应用程序.设置android:exported ="false"以限制对应用程序的提供程序的访问.只有与提供者具有相同用户ID(UID)的应用程序才能访问它.
我试图将导出设置为true但我得到了这个异常
Unable to get provider android.support.v4.content.FileProvider: java.lang.SecurityException: Provider must not be exported为什么我无法导出FileProvider?
Com*_*are 17
是否可以将FileProvider用于其他应用程序?
是.这通常就是重点.
为什么我无法导出FileProvider?
因为那不是你如何使用的FileProvider.
背后的问题FileProvider是给选择的文件到第三方应用访问.为此,您可以通过FLAG_GRANT_READ_URI_PERMISSION和/或FLAG_GRANT_WRITE_URI_PERMISSION在Intent您使用通过您的供应商的一个Uri值的第三方应用程序(例如,通过ACTION_VIEW Intent与使用startActivity()).
另请参阅共享文件的培训指南.