DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > 移动应用 > Android

【DBMNG原创】java.lang.IndexOutOfBoundsException: IndexOutOfBoundsException in AGET onRequestPermission

通过UMENG日志最近发现一个崩溃的日志记录:

Caused by: java.lang.IndexOutOfBoundsException: IndexOutOfBoundsException in AGET    
at com.pkgname.MainActivity.onRequestPermissionsResult(Native Method)
 

经过仔细排查,判断应该是andriod6.0以上系统在动态获取授权后,回调过程中用户拒绝了授权导致的。其中动态获取授权回调代码为:

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode){
            case REQUEST_CODE_ASK_CAMERA:
                if(grantResults[0] == PackageManager.PERMISSION_GRANTED){                    
                	//Log.e("手动授权成功");
                }else{
                	//Log.e("手动授权禁止");
                	DialogUtils.dialogInfoShow(mContext,"您禁止了获取使用相机的权限");
                }
                break;            
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

将其修改为:

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode){
            case REQUEST_CODE_ASK_CAMERA:
                if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){                   
                	//Log.e("手动授权成功");
                }else{
                	//Log.e("手动授权禁止");
                	DialogUtils.dialogInfoShow(mContext,"您禁止了获取使用相机的权限");
                }
                break;            
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

其中的if(grantResults[0] == PackageManager.PERMISSION_GRANTED)

修改为if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)

防止用户手动禁止授权时grantResults数组长度为0导致,程序崩溃。
问题解决,仅供参考。

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号