1.在Android6.0之前,所有的权限都是在安装的时候统一分配的,但是6.0之后,可以在某个时候要用到某个功能权限的时候,在弹出让用户进行选择,是否赋予权限,非常人性化。当然也不是所有功能权限都会弹出,让用户进行选择,只有一些危险的权限,比如,通讯录,拨打电话,短信,定位,拍照等;
以下代码是展示拨打电话的操作:
首先在AndroidManifest.xml中加入以下权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
然后编写拨打电话的代码:
public void callPhoneAction(){
try {
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
} catch ( SecurityException e ) {
e.printStackTrace();
}
}
当然还要加上权限判断:
//检查是否有打电话权限
if (ContextCompat.checkSelfPermission
(LoginActivity.this, Manifest.permission.CALL_PHONE) !=
PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(LoginActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 1);
} else
{
callPhoneAction();
}
//权限选择之后的回调
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
// super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch ( requestCode ) {
case 1:
{
if ( grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED ) {
callPhoneAction();
}
}
break;
default:
break;
}
}
这样就可以拨打电话了。
网友评论