拨打电话-权限运行时

1.在Android6.0之前,所有的权限都是在安装的时候统一分配的,但是6.0之后,可以在某个时候要用到某个功能权限的时候,在弹出让用户进行选择,是否赋予权限,非常人性化。当然也不是所有功能权限都会弹出,让用户进行选择,只有一些危险的权限,比如,通讯录,拨打电话,短信,定位,拍照等;

以下代码是展示拨打电话的操作:
首先在AndroidManifest.xml中加入以下权限

    

然后编写拨打电话的代码:

    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;
        }
    }

这样就可以拨打电话了。

你可能感兴趣的:(拨打电话-权限运行时)