描述android手机 用户拨打电话(原理)(12593+号码)

如果你喜欢请点击:http://huameiai.taobao.com/     http://wd.koudai.com/s/260295144?wfr=cmeiai.taobao.com/ 

谢谢你们的帮助!




描述android手机 用户拨打电话(原理)(12593+号码)


http://blog.sina.com.cn/s/blog_7bc3d84f0100uswx.html



获得手机运营商码

 

呼叫记录有三种类型:

来电:CallLog.Calls.INCOMING_TYPE (常量值:1

外拔:CallLog.Calls.OUTGOING_TYPE(常量值:2

未接:CallLog.Calls.MISSED_TYPE(常量值:3

 

假如我的电话号码是移动的  那么我要打长途 就要在其前面加12593+号码   我们想电话拨号器能自动识别并添上12593

 

的当用户输入号码 点击绿色的拨打电话  实际上也是发送了外拨电话的一个广播  这个广播会传给电话拨号器里面的 接收者

电话拨号器里的接收者 接收到该广播后  就实现了这个电话拨打

 

那么我们希望 广播到达电话拨号器之前 先得到该广播  然后把广播里面用于存放拨打电话号码的参数 改成新的号码

然后把新的号码送给拨号器里的 广播接受者

 

 

如果你是要接受 外拔广播意图 那么 清单的接受者应该是

 

<receiver android:name=".NumberBroadcastReceiver">

           <intent-filter android:priority="1">

              <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> //申请外拨电话广播接受权限 注意这个

           </intent-filter>

</receiver>

 

 

 

 

 

   extends BroadcastReceiver 的类中

public void onReceive(Context context, Intent intent) {

    private static final String OUTGOING_CALL ="android.intent.action.NEW_OUTGOING_CALL";

 

       if(OUTGOING_CALL.equals(intent.getAction())){

           TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

           String operator = telephonyManager.getSimOperator();//获得经营商  判断是联通还是移动用的

           if("46000".equals(operator) || "46002".equals(operator)){//46000  46002是中国移动的 联通是46001  电信是46003

              String nubmer = getResultData();

              if(!nubmer.startsWith("12593")){

                  nubmer = "12593"+ nubmer;

                  setResultData(nubmer);

              }

           }

else if(…) ………………..//其他意图活动


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值