Android 6.0权限问题

来源:互联网 发布:zepto.js tap事件 编辑:程序博客网 时间:2024/05/17 21:46

项目在小米6.0上面运行时,使用打电话和获取相册的功能时崩溃了,但在AndroidManifest.xml中声明了相关权限

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

1.申请权限

private static final int MY_PERMISSIONS_REQUEST_CALL = 1;private void requestCallPermission(){ //检测某个权限是否已经被授予 if (ContextCompat.checkSelfPermission(this,                Manifest.permission.CALL_PHONE)                != PackageManager.PERMISSION_GRANTED)        {                //申请权限            ActivityCompat.requestPermissions(this,                    new String[]{Manifest.permission.CALL_PHONE},                    MY_PERMISSIONS_REQUEST_CALL);        }}


遇到问题:项目使用eclipse,报错:找不到方法checkSelfPermission和requestPermissions,更新support-v4包即可。

2.回调处理

//回调处理授权结果    @Override    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)    {        if (grantResults!=null&&grantResults.length>0)        {        switch (requestCode) {        case MY_PERMISSIONS_REQUEST_CALL:         if (grantResults[0] == PackageManager.PERMISSION_GRANTED)             {        //执行打电话的操作             }        break;        default:        break;        }            return;        }        super.onRequestPermissionsResult(requestCode, permissions, grantResults);    }

3.使用

在需要打电话操作前请求权限

/** * 判断是否为6.0及其以上系统 */if(Build.VERSION.SDK_INT >= 23){requestCallPermission();}


详细介绍http://blog.csdn.net/hudashi/article/details/50775180




0 0