安卓 电话黑名单拦截
来源:互联网 发布:nginx 域名不能访问 编辑:程序博客网 时间:2024/04/28 17:53
最近了解了一下电话拦截,写了一下demo。在这里给大家分享一下吧!我写的是去电自动挂断。通过隐私启动来拨打电话,由于使用常规方法无法挂断电话,所以需使用反射技术实现通过程序挂断电话。虽然这种方法并没有直接调用服务,但却使用了AIDL文件自动生成的接口。接口名为Itelephony.(AIDL是安卓接口定义语言的缩写)。官方提供了aidl文件,只需把NeighboringCellInfo.aid和Itelephony这两个放到对应的包中就行了。代码如下:
package com.example.an_service2;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.RemoteException;import android.telephony.TelephonyManager;import android.util.Log;import com.android.internal.telephony.ITelephony;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * Created by Administrator on 2017/2/13. */public class Rervice extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("android.intent.action.PHONE_STATE".equals(intent.getAction())) { //先得到电话管理者 TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); //得到电话的状态 int phonrstate = telephonyManager.getCallState(); switch (phonrstate) { case TelephonyManager.CALL_STATE_RINGING: //得到号码: String number = intent.getStringExtra("incoming_number"); Log.i("Test", "电话来了" + number); //得到电话管理者类对象 Class<TelephonyManager> clazz = TelephonyManager.class; //方法 try { Method method = clazz.getDeclaredMethod("getITelephony", null); // 允许访问私有方法 method.setAccessible(true); // 执行方法 ITelephony iTelephony= (ITelephony) method.invoke(telephonyManager,null); // 判断 if("18684662845".equals(number)){ iTelephony.endCall(); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } break; case TelephonyManager.CALL_STATE_OFFHOOK: Log.i("test","通话中。。。"); break; case TelephonyManager.CALL_STATE_IDLE: Log.i("test","挂断"); break; } } } }
Manifest.xml:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.an_service2"> <!--电话状态权限--> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <!--打电话权限--> <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".Rervice"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"></action> </intent-filter> </receiver> </application></manifest>
0 0
- 安卓 电话黑名单拦截
- 安卓端黑名单拦截电话
- 黑名单电话短信拦截实现
- android 黑名单中电话拦截
- 黑名单电话自动拦截【Android】
- 黑名单电话和短信拦截
- 129.拦截黑名单的电话
- 基于安卓的自定义黑名单的短信拦截系统
- 31、通信卫士--拦截黑名单电话
- 超越系统权限----Android黑名单电话拦截
- iOS9.3.3骚扰电话拦截黑名单数据库
- 24.Android-实现黑名单电话拦截
- 手机黑名单,拦截电话和短信,清除通话记录
- 安卓通过有序广播拦截特定电话!
- 安卓骚扰拦截挂断电话时候的操作
- Android安卓电话拦截及短信过滤
- 黑名单电话管理
- Android项目实战--手机卫士17--拦截黑名单以及响一声电话的处理
- 简单使用多线程和Socket,实现自动问答
- hdu 1024 Max Sum Plus Plus
- 关于昨天和今天自己效率低下的总结
- Mac OS X 使用 rc.local 开机执行命令设置方法
- CentOS系统通过PXE实现批量无人值守安装
- 安卓 电话黑名单拦截
- PreparedStatement与Statement的区别
- java之继承!!
- 1034. 有理数四则运算(20)
- [AHOI2014]支线剧情 bzoj3876
- 2017 WHUWT Day1 (Div. 2) (dfs+bfs //待更新C
- 《把时间当作朋友》读书笔记
- Android 仿相机拍照 录像功能
- mybatis 的批量更新