android发送短信填入手机号码,6.0动态请求权限拨打电话

来源:互联网 发布:怎么才能恢复视力 知乎 编辑:程序博客网 时间:2024/06/10 06:34
                //发短信填入号码                Uri uri = Uri.parse("smsto:" + phone);                Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri);                sendIntent.putExtra("sms_body", subTitle);                context.startActivityForResult(sendIntent, 1002 );


        //跳转到拨打电话界面        Uri uri = Uri.parse("tel:13876543210");        Intent intent = new Intent(Intent.ACTION_DIAL,uri);        startActivity(intent);


        //直接拨号        Uri uri = Uri.parse("tel:13823214321");        Intent intent = new Intent(Intent.ACTION_CALL, uri);        startActivity(intent);

但是在6.0上面打电话需要动态请求权限,所以代码又改成这样:

    private void testCallPhone() {        if (Build.VERSION.SDK_INT >= 23) {            //判断有没有拨打电话权限            if (PermissionChecker.checkSelfPermission(context, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {                //请求拨打电话权限                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CODE);            } else {                callPhone("13823214321");            }        } else {            callPhone("13823214321");        }    }    /**     * 请求权限的回调方法     * @param requestCode    请求码     * @param permissions    请求的权限     * @param grantResults   权限的结果     */    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        if (requestCode == REQUEST_CODE && PermissionChecker.checkSelfPermission(context, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {            ToastUtils.show(context, "授权成功");            callPhone("13823214321");        }    }    private void callPhone(String phoneNum) {        //直接拨号        Uri uri = Uri.parse("tel:" + phoneNum);        Intent intent = new Intent(Intent.ACTION_CALL, uri);        //此处不判断就会报错        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {            startActivity(intent);        }    }    private final int REQUEST_CODE = 0x1001;

需要动态申请的权限还有

Permission GroupPermissionsandroid.permission-group.CALENDAR
  • android.permission.READ_CALENDAR
  • android.permission.WRITE_CALENDAR
android.permission-group.CAMERA
  • android.permission.CAMERA
android.permission-group.CONTACTS
  • android.permission.READ_CONTACTS
  • android.permission.WRITE_CONTACTS
  • android.permission.GET_ACCOUNTS
android.permission-group.LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_COARSE_LOCATION
android.permission-group.MICROPHONE
  • android.permission.RECORD_AUDIO
android.permission-group.PHONE
  • android.permission.READ_PHONE_STATE
  • android.permission.CALL_PHONE
  • android.permission.READ_CALL_LOG
  • android.permission.WRITE_CALL_LOG
  • com.android.voicemail.permission.ADD_VOICEMAIL
  • android.permission.USE_SIP
  • android.permission.PROCESS_OUTGOING_CALLS
android.permission-group.SENSORS
  • android.permission.BODY_SENSORS
android.permission-group.SMS
  • android.permission.SEND_SMS
  • android.permission.RECEIVE_SMS
  • android.permission.READ_SMS
  • android.permission.RECEIVE_WAP_PUSH
  • android.permission.RECEIVE_MMS
  • android.permission.READ_CELL_BROADCASTS
android.permission-group.STORAGE
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE


注意:一个组的任何一个权限被授权了,其他权限会被自动授权。

例如:一旦WRITE_EXTERNAL_STORAGE被授权了,app也有READ_EXTERNAL_STORAGE权限了。


1 0
原创粉丝点击