Androidx学习笔记(56)--- IP拨号器
来源:互联网 发布:scdma是什么网络类型 编辑:程序博客网 时间:2024/04/30 19:49
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>
0 0
- Androidx学习笔记(56)--- IP拨号器
- Androidx学习笔记(3)-- 电话拨号器编写
- Androidx学习笔记(5)--短信发送器
- Androidx学习笔记(28)--- 网络图片查看器---HttpURLConnection
- Androidx学习笔记(32)--- Html源文件查看器
- Androidx学习笔记(57)--- 短信拦截器
- Androidx学习笔记(66)--- 简单音乐播放器原理
- Androidx学习笔记(77)--- 音乐播放器2
- Androidx学习笔记(9)-- logcat
- Androidx学习笔记(18)-- junit单元测试
- Androidx学习笔记(19)-- SQLite 简介
- Androidx学习笔记(21)-- SQLite 事务
- Androidx学习笔记(24)-- ArrayAdapter&SimpleAdapter
- Androidx学习笔记(24)--对话框
- Androidx学习笔记(48)--- 创建Activity
- Androidx学习笔记(51)--- Activity生命周期
- Androidx学习笔记(55)--- 广播接收者
- Androidx学习笔记(62)--- 服务Service
- KMP 算法
- Androidx学习笔记(52)--- Activity的四种启动模式
- Androidx学习笔记(53)--- 横竖屏切换的生命周期
- Androidx学习笔记(54)--- Activity返回时传递数据
- Androidx学习笔记(55)--- 广播接收者
- Androidx学习笔记(56)--- IP拨号器
- Androidx学习笔记(57)--- 短信拦截器
- Androidx学习笔记(58)--- 监控SD卡状态
- Androidx学习笔记(59)--- 简易勒索软件原理
- Androidx学习笔记(60)--- 监听应用的安装、卸载、更新状态
- IPV6地址数据库导出
- 2月1日-2月13日,10小时,剩3185小时
- 8VC Venture Cup 2016 - Elimination Round题解
- ubuntu下使用CGAL的pro文件