我的应用程序允许用户从其他应用程序导入他们的照片和视频。现在,谷歌用谷歌照片取代了Google+照片,对我来说,有几件事发生了。其中一件事是在应用程序重启后重新使用导入的文件。我有一种感觉,当Google Photos返回带有图片URI的intent时,他们已经收紧了权限,所以在我的应用被杀后,它不再有访问上传文件的权限。我得到了安全预期:
java.lang.SecurityException: Permission Denial: opening provider com.google.android.apps.photos.contentprovider.MediaContentProvider from ProcessRecord{2c17ab9e 2124:com.myapp.myapp/u0a436} (pid=2124, uid=10436) that is not exported from uid 10427
编辑:
我在重用com.google.android.apps.docs.sync.filemanager.FileProvider
提供的文件时也遇到了同样的问题
有任何建议/解决方法吗?我知道我可以在失去权限之前读取文件,所以理论上我可以复制它,但我不能说我非常喜欢它。
发布于 2015-07-08 00:43:48
是的,这是设计出来的,就像Android Developer site上描述的那样。
出于安全原因,权限是临时的,因此一旦客户端应用程序的任务堆栈完成,就无法再访问该文件。在onActivityResult方法中,您必须在收到意向答案时获取文件数据。存储文件数据的副本,因为当onActivityResult返回时,该文件将不再可用。
发布于 2015-06-03 04:17:21
也许您可以尝试将此用户权限添加到您的清单文件中。
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
发布于 2015-06-04 06:46:52
https://stackoverflow.com/questions/30572261
复制相似问题