这里以设计一个按钮以拨打电话为例子
拨打电话必须在Android.Manifest.xml中声明权限
<uses-permission android:name="android.permission.CALL_PHONE">
拨打电话的函数:
public void call(){
try{
Intent intent = new Intent(Intent.Action_CALL);
intent.setData(Uri.parse("tel:10086"));
startAcitivity(intent);
}catch(SecurityException e){
e.printStackTrace();
}
}
点击事件:
public void onClick(View view) {
//判断用户是否已经授权了权限,是就执行call(0),否则就调用requestPermissions方法去申请授权
if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.CALL_PHONE) !=
PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE},1);
}else{
call();
}
}
重写的onRequestPermissionResult方法://不管之前是否选择授权,都会调用这个方法
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 1: if(grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){ call(); }else { Toast.makeText(MainActivity.this,"you denied the permission",Toast.LENGTH_SHORT).show(); } break; default: } }