您的位置:首页 > 移动开发 > Android开发

Android 6.0权限问题

2016-08-01 13:35 381 查看
项目在小米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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: