Android:在程序运行时申请权限(第一行代码android)

来源:互联网 发布:肩颈按摩仪 知乎 编辑:程序博客网 时间:2024/05/20 03:48

这里以设计一个按钮以拨打电话为例子

拨打电话必须在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:        }    }




阅读全文
0 0