步骤
一,添加电话权限 导依赖
<uses-permission android:name="android.permission.CALL_PHONE"/>
implementation'com.github.dfqin:grantor:2.5'
有两种方式
一,动态获取危险权限
private void requestPremission() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
//该权限已授予
callPhone();
}else {
//该权限没有授予
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CALL_PHONE},100);
}
}
@Override
public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this,"获取权限成功", Toast.LENGTH_SHORT).show();
callPhone();
}else {
Toast.makeText(MainActivity.this,"获取权限失败", Toast.LENGTH_SHORT).show();
}
}
二,框架获取危险权限
//框架
private void grantor() {
PermissionsUtil.requestPermission(this,new PermissionListener() {
@Override
public void permissionGranted(@NonNull String[] permission) {
callPhone();
}
@Override
public void permissionDenied(@NonNull String[] permission) {
Toast.makeText(MainActivity.this,"获取权限失败", Toast.LENGTH_SHORT).show();
}
},Manifest.permission.CALL_PHONE );
}
具体实施打电话
private void callPhone() {
Intent intent =new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:10010"));
startActivity(intent);
}