安卓运行时权限处理——以打电话为例
如果想要实现点击一个图标就可以直接调起电话打给某人,可以这样实现:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.CALL_PHONE},1);
}
call();
}
private void call(){
try {
Intent intent = new Intent(Intent.ACTION_CALL);//如果想实现在手机内置拨号页面打电话,把ACTION_CALL改成ACTION_DIAL
intent.setData(Uri.parse("tel:###"));
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {//处理权限请求
switch (requestCode){
case 1:
if (grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
call();
}
else {
Toast.makeText(this,"权限不允许",Toast.LENGTH_SHORT).show();
}
}
}
同时在AndroidManifest.xml需要添加权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
这样就可以实现直接点击桌面的一个小图标然后给某人直接打电话了。