android 6.0动态权限

2019-01-01  本文已影响0人  CQ_TYL
危险权限:
详情:
详情
简单的权限请求demo

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.bn_main).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                callPhone();//模拟打电话
            }
        });
    }
    private void callPhone(){
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED){
            //权限请求未被同意
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CALL_PHONE},1);
        }else {
            //权限请求被同意
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode){
            case 1://请求的权限码
                if (grantResults[0]==PackageManager.PERMISSION_GRANTED){
                //权限被同意
                }else {
                //权限被拒绝 提示用戶沒有權限

                }
                break;
        }
    }
}
封装:
    /**
     * 檢查是否由權限
     * */
    private Boolean hasPermission(String ... permissions){
        for(String permission:permissions){
            if (ContextCompat.checkSelfPermission(this,permission)!= PackageManager.PERMISSION_GRANTED){
                return false;
            }
        }
        return true;
        }
        /**
         * 權限請求
         * */
        private void requestPermissions(int code,String ... permissions){
                ActivityCompat.requestPermissions(this,permissions,code);
        }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

        switch (requestCode){
            case Constants.CALL_CODE:

                break;
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读