我收到了来自 Android 6.0.1 用户的崩溃报告:
STACK_TRACE=java.lang.SecurityException: Permission Denial: reading com.google.android.apps.photos.contentprovider.MediaContentProvider uri content://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F19181/ORIGINAL/NONE/443149508 from pid=18891, uid=10128 requires the provider be exported, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1620)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:146)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:692)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1104)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
at fr.free.nrw.commons.upload.UploadService.uploadContribution(UploadService.java:176)
at fr.free.nrw.commons.upload.UploadService.handle(UploadService.java:114)
at fr.free.nrw.commons.upload.UploadService.handle(UploadService.java:27)
at fr.free.nrw.commons.HandlerService$ServiceHandler.handleMessage(HandlerService.java:19)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
环顾四周,这似乎与 Google Photos 权限有关,com.google.android.apps.photos.permission.GOOGLE_PHOTOS
. 我的清单中已经有这个权限,但是这个用户正在运行 API 23,它需要运行时权限。
问题是,我如何为此调用运行时权限?我知道如何按照https://developer.android.com/training/permissions/requesting.html#perm-check中所述的标准权限执行此操作,但是当我尝试这样做时
ActivityCompat.requestPermissions(thisActivity,
new String[]{com.google.android.apps.photos.permission.GOOGLE_PHOTOS},
它不编译。
我需要在运行时请求才能访问 Google 照片中的图像的权限名称是什么?