本文将带你了解Android应用开发Android 动态获取权限(6.0 , 7.0),希望本文对大家学Android有所帮助。
Android 动态获取权限(6.0 , 7.0),在Android API23以上,需要动态获取网络权限。以API版本23 6.0手机获取电话权限为例。
/**
* 请求打电话的权限码
*/
private static final int REQUEST_CALL_PHONE = 100;
/**
* 点击按钮申请权限
*/
findViewById(R.id.callButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//点击按钮调用申请权限的方法
requestPermission();
}
});
private void requestPermission() {
//判断Android版本是否大于23
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int checkCallPhonePermission = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE);
if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CALL_PHONE);
return;
} else {
//已有权限
}
} else {
//API 版本在23以下
}
}
在activity中有申请权限的回调
/**
* 注册权限申请回调
* @param requestCode 申请码
* @param permissions 申请的权限
* @param grantResults 结果
*/
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
switch (requestCode) {
case REQUEST_CALL_PHONE:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
callPhone();
}
else {
// Permission Denied
Toast.makeText(MainActivity.this, CALL_PHONE Denied, Toast.LENGTH_SHORT).show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
这样点击按钮时的弹框样式,为手机系统弹框。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!