是否可以为其他应用程序提供文件提供程序?
清单文件

...
 <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>
...

doc开始:
False:提供程序不可用于其他应用程序。集合
android:exported=“false”将对提供商的访问限制为
应用。只有与具有相同用户ID(uid)的应用程序
提供者将有权访问它。
我试过将exported设置为true,但出现了这个异常
Unable to get provider android.support.v4.content.FileProvider: java.lang.SecurityException: Provider must not be exported为什么我不能导出文件提供程序?

最佳答案

是否可以为其他应用程序提供文件提供程序?
对.这通常是重点。
为什么我不能导出文件提供程序?
因为这不是你使用FileProvider的方式。
FileProvider后面的点是give select access to files to third-party apps。您可以通过FLAG_GRANT_READ_URI_PERMISSION和/或FLAG_GRANT_WRITE_URI_PERMISSION,在Intent中将提供商的Uri值传递给第三方应用程序(例如,通过与ACTION_VIEW一起使用的IntentstartActivity())。
另请参见the training guide on sharing files

08-25 14:28
查看更多