Androidx学习笔记(56)--- IP拨号器
2016-02-14 06:14
495 查看
IP拨号器
原理:接收拨打电话的广播,修改广播内携带的电话号码 * 定义广播接收者接收打电话广播public class CallReceiver extends BroadcastReceiver { //当广播接收者接收到广播时,此方法会调用 @Override public void onReceive(Context context, Intent intent) { //拿到用户拨打的号码 String number = getResultData(); //修改广播内的号码 setResultData("17951" + number); } }在清单文件中定义该广播接收者接收的广播类型
<receiver android:name="com.exp.ipdialer.CallReceiver"> <intent-filter > <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver>接收打电话广播需要权限
<uses-permission android:name="android.permission.PROCESS_O LLS"/>即使广播接收者的进程没有启动,当系统发送的广播可以被该接收者接收时,系统会自动启动该接收者所在的进程
MainActivity
public void click(View v){
EditText et = (EditText) findViewById(R.id.et);
SharedPreferences sp = getSharedPreferences("ip", MODE_PRIVATE);
sp.edit().putString("ipNumber", et.getText().toString()).commit();
}
广播
public class CallReceiver extends BroadcastReceiver {
//接收到广播时就会调用
@Override
public void onReceive(Context context, Intent intent) {
//添加IP线路
//在打电话广播中,会携带拨打的电话的号码,通过以下代码获取到
String number = getResultData();
if(number.startsWith("0")){
SharedPreferences sp = context.getSharedPreferences("ip", Context.MODE_PRIVATE);
String ipNumber = sp.getString("ipNumber", "");
//把IP线路号码添加至用户拨打号码的前面
number = ipNumber + number;
//把新的号码重新放入广播中
setResultData(number);
abortBroadcast();
}
}
}
AndroidManifest.xml
<receiver android:name=".CallReceiver">
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
相关文章推荐
- Androidx学习笔记(55)--- 广播接收者
- Androidx学习笔记(54)--- Activity返回时传递数据
- Androidx学习笔记(53)--- 横竖屏切换的生命周期
- Androidx学习笔记(52)--- Activity的四种启动模式
- Androidx学习笔记(51)--- Activity生命周期
- Androidx学习笔记(50)--- Activity在跳转时携带数据
- 《Android源码设计模式》读书笔记 (5) 第5章 工厂模式
- 关于android系统对AndroidManifest文件的解析机制
- 即将到来的Android N,将具备这些新特性
- Android HotPatch 技术研究总结
- android模拟器新选择:Visual Studio Emulator for Android
- Service详解
- android:Activity启动模式之standard
- android:Activity四种启动模式简介
- Android SDK代理服务器解决国内不能更新下载问题
- andriod开发
- Android中Activity四种启动模式和taskAffinity属性详解
- android自动弹出软键盘(输入键盘)
- Android ProgressDialog进度条使用详解
- Android Wear 进阶 - 4 发送和同步数据 <Sending and Syncing Data>