Android之实现手机号码拦截
1.布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><EditText
android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/ma_itc_et"/><Button
android:layout_width="match_parent"android:layout_height="wrap_content"android:text="确认"android:onClick="yes"/>
</LinearLayout>
2.java代码
public class MainActivity extends AppCompatActivity {private EditText ma_itc_et;private String number;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ma_itc_et = (EditText) findViewById(R.id.ma_itc_et);//从SharedPreferences获取保存号码的路径SharedPreferences spe = this.getSharedPreferences("yyy", this.MODE_PRIVATE);//根据路径来得到取出保存的号码String data =spe.getString("code", "");ma_itc_et.setText(data);}public void yes(View view) {number = ma_itc_et.getText().toString();//把输入框里面的值通过SharedPreferences保存,第一个参数是取个文件名SharedPreferences.Editor editor = getSharedPreferences("yyy", MODE_WORLD_WRITEABLE).edit();//第一个参数是键,第二个是电话号码editor.putString("code", number);editor.commit();}
}
3.注册一个广播
public class MyphoneState extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if ("android.intent.action.PHONE_STATE".equals(intent.getAction())) {String phone = intent.getStringExtra("incoming_number");//从SharedPreferences获取保存号码的路径SharedPreferences spe = context.getSharedPreferences("yyy", context.MODE_PRIVATE);//根据路径来得到取出保存的号码String data =spe.getString("code", "");//把来电的号码跟你输入的号码判断//其实可以不用判断也不用页面那样的话任何来电都会挂断if (phone.equals(data)) {TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);int state = telephonyManager.getCallState();switch (state) {//来电状态case TelephonyManager.CALL_STATE_RINGING://得到TelephonyManager的Class对象Class<TelephonyManager> telephonyManagerClass = TelephonyManager.class;try {//得到TelephonyManager.getITelephony方法的Method对象Method method = telephonyManagerClass.getDeclaredMethod("getITelephony", null);//允许访问私有方法method.setAccessible(true);//调用getITelephony方法发挥ITelephony对象ITelephony telephony = (ITelephony) method.invoke(telephonyManager, null);//挂断电话telephony.endCall();} catch (Exception e) {e.printStackTrace();}break;//通话状态case TelephonyManager.CALL_STATE_OFFHOOK:break;//挂断状态case TelephonyManager.CALL_STATE_IDLE:break;}}}}
}
4.在AndroidManifest文件添加权限和配置广播
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!--允许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认--><uses-permission android:name="android.permission.CALL_PHONE"></uses-permission><receiver android:name=".MyphoneState"><intent-filter><action android:name="android.intent.action.PHONE_STATE"></action></intent-filter></receiver>
5.在项目下建个aidl文件夹,把这两个文件夹复制进去
Android之实现手机号码拦截相关推荐
- Android 广播+服务+AIDL一起实现手机号码拦截
在这里跟大家分享下仿手机号码拦截,比如你设置一个号码,然后这个号码打电话进来就会被自动挂掉而且手机不会有任何的记录. 我们的实现思路是直接接受来电的广播判断号码然后用官方提供的AIDL中的方法去挂掉电 ...
- 【Android 逆向】函数拦截实例 ( ③ 刷新 CPU 高速缓存 | ④ 处理拦截函数 | ⑤ 返回特定结果 )
文章目录 前言 一.刷新 CPU 高速缓存 二.处理拦截函数 1.桩函数 2.处理拦截函数 三.返回特定结果 四.相关完整代码 前言 [Android 逆向]函数拦截实例 ( 函数拦截流程 | ① 定 ...
- 【Android 逆向】函数拦截实例 ( ② 插桩操作 | 保存实际函数入口 6 字节数据 | 在插桩的函数入口写入跳转指令 | 构造拼接桩函数 )
文章目录 前言 一.函数拦截需要的几个参数 二.插桩前先保存实际函数入口 6 字节数据 三.在插桩的函数入口写入跳转指令 | 构造拼接桩函数 前言 [Android 逆向]函数拦截实例 ( 函数拦截流 ...
- 【Android 逆向】函数拦截 ( ARM 架构下的插桩拦截 | 完整代码示例 )
文章目录 一.ARM 架构下的插桩拦截 二.完整代码示例 一.ARM 架构下的插桩拦截 ARM 架构下的跳转指令 : 下面的二进制数都是十六进制数 ; 323232 位指令 ; 04 F0 1F E5 ...
- 【Android 逆向】函数拦截 ( GOT 表拦截 与 插桩拦截 | 插桩拦截简介 | 插桩拦截涉及的 ARM 和 x86 中的跳转指令 )
文章目录 一.GOT 表拦截与插桩拦截 二.插桩拦截简介 三.插桩拦截涉及的 ARM 和 x86 中的跳转指令 一.GOT 表拦截与插桩拦截 函数拦截有 222 种方式 : 使用 GOT 表进行函数拦 ...
- 【Android 逆向】函数拦截 ( CPU 高速缓存机制 | CPU 高速缓存机制 导致 函数拦截失败 )
文章目录 一.CPU 高速缓存机制 二.CPU 高速缓存机制 导致 函数拦截失败 一.CPU 高速缓存机制 CPU 架构模型中 , 指令 在开始时 , 存放在内存中 , 如 : /proc/pid/m ...
- Android 系统(254)---Android libphonenumber Demo 手机号码归属地
Android libphonenumber Demo 手机号码归属地 libphonenumber 是google 开源的库,提供手机号码格式化,来电归属地,运营商等多种功能十分强大,现在做个简单的 ...
- android 黑名单 短信拦截
上一篇讲了电话拦截,现在讲一下短信拦截. 由于android4.4以上,提高了系统的安全性,同时,也对短信的处理进行了保护 先来讲一下在android4.4以下的短信拦截机制 在android4.4一 ...
- 【Android 逆向】函数拦截原理 ( 通过修改 GOT 全局偏移表拦截函数 | 通过在实际被调用的函数中添加跳转代码实现函数拦截 )
文章目录 一.通过修改 GOT 全局偏移表拦截函数 二.通过在实际被调用的函数中添加跳转代码实现函数拦截 一.通过修改 GOT 全局偏移表拦截函数 使用 GOT 全局偏移表 拦截函数 , 只需要将 G ...
最新文章
- python 版本比较函数 LooseVersion StrictVersion
- 网络嗅探混杂模式与非混杂模式的区别
- 分享一个牛逼的阿里天猫面经,已经拿到 Offer ,来自朋友的朋友
- reactjs使用eject暴露webpack核心配置
- python中x_python中round(x,[n])的使用
- python中again函数怎么用_《“笨方法”学python 》 once again 20170729
- 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》影评:生而孤独,从不认命...
- html dl dt dd 标签语法与使用
- cacti 文件服务器,免费的服务器和网络监控工具-CactiEZ
- css强制一行显示超出的部分显示点点点
- 深入浅出 - Android系统移植与平台开发(四)- Android启动流程
- 电脑计算机c盘打不开怎么办,电脑的c盘炸了打不开电脑了怎么处理
- 我的职业性格测评报告
- windows防火墙
- 什么是 95计费方式
- bilibili漫游自建服务器,【分享】bilibili太极模块---哔哩漫游
- linux下阅读MHT文件
- 小白也能做的选择(上)
- 国外拜访客户,实用小贴士
- 基于网络媒介的交互设计研究