美文网首页
[Android][M0][Call] 拨打电话

[Android][M0][Call] 拨打电话

作者: 灰灰手记 | 来源:发表于2017-05-04 21:33 被阅读58次

    我的OSC地址:[Android][M0][Call] 拨打电话

    下面的代码基于 Api23 编译,并使用 荣耀6 Android 6.0 系统测试 OK。


    一、调用系统拨号界面

    例如:拨打 10086

    Uri phoneUri = Uri.parse("tel:10086");
    Intent intent = new Intent(Intent.ACTION_DIAL, phoneUri);
    startActivity(intent);
    

    特点:
    1、不需要电话权限:android.permission.CALL_PHONE。
    2、而且在拨出去之前还可以确认号码的正确性,以及是否真的要拨出去。
    3、会在通话记录里面生成新纪录。

    二、直接拨打电话

    例如:拨打 10086

    Uri phoneUri = Uri.parse("tel:10086");
    Intent intent = new Intent(Intent.ACTION_CALL, phoneUri);
    ///检查权限
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
       Log.e("Shawn", "call: 没有权限");
       return;
    }
    startActivity(intent);
    

    特点:
    1、需要电话权限:android.permission.CALL_PHONE。
    2、不需要跳转任何界面,直接就能拨出去。
    3、会在通话记录里面生成新纪录。

    但自6.0开始加入了动态权限机制,仅仅只在 AndroidManifest.xml 里面声明电话权限是不够的,还必须在调用代码前添加权限检测,就像上面那样。

    相关文章

      网友评论

          本文标题:[Android][M0][Call] 拨打电话

          本文链接:https://www.haomeiwen.com/subject/uqbltxtx.html