//发短信填入号码                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 Group Permissions
android.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. Android 应用Root权限申请实现
  2. Android手动检查并申请权限
  3. Android中在sdcard上创建文件夹,注意加权限!!!!
  4. Android开发学习笔记-GridView的动态显示
  5. Android动态设置主题(使用RxBus模式)

随机推荐

  1. Android和iOS智能机去年出货超7亿 同比增
  2. Android中计算textView长度问题
  3. Android(安卓)UI设计--新闻或信息条数的
  4. Android ADT插件很不稳定,DDMS总是死?
  5. android生态之应用篇
  6. Handler消息传送机制总结
  7. Android下如何调试程序
  8. 调用Android自带日历功能(日历列表单、添
  9. 如何把批量数据导入到android 的 sqlite
  10. 【Android】Android事件分发机制的学习笔