才能是来自独创性。独创性是思维、观察、理解和判断的一种独特的方式。
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(请将#换为@)联系,我们会尽快核实后删除。
关于我们 - 版权声明 - 服务条款 - RSS订阅 - 工作机会 - 友情链接 - 联系我们 - 在线留言
Copyright © 2006-2020 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH   豫ICP备11002312号-2

豫公网安备 41010502002439号