简体   繁体   English

应用随机崩溃,显示权限被拒绝

[英]App crashes randomly ,show's permission denial exception

App crashes randomly ,show's permission denial exception. 应用随机崩溃,显示拒绝权限异常。 Here is the error log 这是错误日志

Writing exception to parcel
    java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/fs_id from pid=22310, uid=10084 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
        at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:605)
        at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:480)
        at android.content.ContentProvider$Transport.query(ContentProvider.java:211)
        at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
        at android.os.Binder.execTransact(Binder.java:453)
07-21 15:44:51.930 20147-20320/? E/NetworkScheduler.SR: Invalid parameter app

I think you are running in Marshmallow device try to handle permission run time. 我认为您正在棉花糖设备上运行,尝试处理权限运行时间。

Read External Storage is required 需要读取外部存储

public boolean checkPermissionREAD_EXTERNAL_STORAGE(
        final Context context) {
    int currentAPIVersion = Build.VERSION.SDK_INT;
    if (currentAPIVersion >= android.os.Build.VERSION_CODES.M) {
        if (ContextCompat.checkSelfPermission(context,
                Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(
                    (Activity) context,
                    Manifest.permission.READ_EXTERNAL_STORAGE)) {
                showDialog("External storage", context,
                        Manifest.permission.READ_EXTERNAL_STORAGE);

            } else {
                ActivityCompat
                        .requestPermissions(
                                (Activity) context,
                                new String[] { Manifest.permission.READ_EXTERNAL_STORAGE },
                                MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
            }
            return false;
        } else {
            return true;
        }

    } else {
        return true;
    }
}`enter code here`

Add that in Manifest: 在清单中添加:

<user-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

if does't work look 如果不起作用看起来

https://developer.android.com/training/permissions/requesting.html https://developer.android.com/training/permissions/requesting.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM