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以上系统在动态获取授权后,回调过程中用户拒绝了授权导致的。其中动态获取授权回调代码为:

01@Override
02    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
03        switch (requestCode){
04            case REQUEST_CODE_ASK_CAMERA:
05                if(grantResults[0] == PackageManager.PERMISSION_GRANTED){                    
06                    //Log.e("手动授权成功");
07                }else{
08                    //Log.e("手动授权禁止");
09                    DialogUtils.dialogInfoShow(mContext,"您禁止了获取使用相机的权限");
10                }
11                break;            
12            default:
13                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
14        }
15    }

将其修改为:

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

其中的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号