1.android 6.0及更高版本加入
2.申请权限(以打电话权限为例)
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {//判断是否有权限,没有的话就加 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 1);//三个参数分别为Activity实例,权限名,请求码(只要是唯一值即可) } else { call(); }
private void call() { try { Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:10086")); startActivity(intent); } catch (SecurityException e){ e.printStackTrace(); } }
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(this,"Uou denied the permission",Toast.LENGTH_LONG).show(); } } }