android基础--拨打电话两种方式

参考:android基础--拨打电话两种方式

1.  首先在AndroidMenifest文件里加上这个权限:

<uses-permission android:name="android.permission.CALL_PHONE" />


2. 实现方式

     第一种方式:

[html]  view plain  copy
 print ?
  1. Intent intent = new Intent(Intent.ACTION_DIAL);  
  2. Uri data = Uri.parse("tel:" + "1872172xxxx");  
  3. intent.setData(data);  
  4. startActivity(intent);  

这种方式的特点就是,去到了拨号界面,但是实际的拨号是由用户点击实现的。


    第二种方式:

[html]  view plain  copy
 print ?
  1. Intent intent = new Intent(Intent.ACTION_CALL);  
  2. Uri data = Uri.parse("tel:" + "1872172....");  
  3. intent.setData(data);  
  4. startActivity(intent);  

这种方式的特点就是,直接拨打了你所输入的号码,所以这种方式对于用户没有直接的提示效果,Android推荐使用第一种方式,如果是第二种的话,建议在之前加一个提示,是否拨打号码,然后确定后再拨打。


3.  异常现象

[html]  view plain  copy
 print ?
  1. android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.DIAL dat=15026536236 }  
  2.     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1792)  
  3.     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512)  
  4.     at android.app.Activity.startActivityForResult(Activity.java:3810)  
  5.     at android.app.Activity.startActivityForResult(Activity.java:3761)  
  6.     at android.app.Activity.startActivity(Activity.java:4091)  
  7.     at android.app.Activity.startActivity(Activity.java:4059)  
提示类找不到,出现此问题时候,要回去查找
[html]  view plain  copy
 print ?
  1. Intent intent = new Intent(Intent.ACTION_CALL);  
  2. Uri data = Uri.parse("tel:" + "1872172....");  
这部分是否正确写法,否则就会报错。。


我出错的代码是

[html]  view plain  copy
 print ?
  1. Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+ phone != null ? phone : tel));  
导致此异常,,

也有的人 会忘了写  uri.parse() 中的 tel :  ,这些都不能忽略..

 请大家记住..代码规范。

3.  原来项目

PermissionUtil.getInstance().requestPermission(context, new String[]{Manifest.permission.CALL_PHONE}, PermissionUtil.HOTLINE_CODE, new PermissionUtil.PermissionResultCallBack() {
                    @Override
                    public void onPermissionGranted() {
                        String mServerTel = new SharedPreUtils(context, SPConstants.SHARE_NAME_SETTINGS).getString(SPConstants.KEY_SERVICE_TEL, "133××××6666");
                        try {
                            context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + mServerTel)));
                        } catch (SecurityException e) {

                        }
                    }
                });

会弹出Pemission:是否允许打电话权限

4.  现在项目

Intent intent = new Intent(Intent.ACTION_DIAL);
                intent.setData(Uri.parse("tel:" + "133××××6666"));
                startActivity(intent);


哈哈哈哈哈!赞不赞



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值