Android APP: BlackContact 短信拦截
来源:互联网 发布:中拓互联 中文域名 编辑:程序博客网 时间:2024/05/01 13:35
由于 4.2版本后已经取消了 abortBroadcast() 的功能, 所以在实现这功能的时候需要先将原有 Message APP 中的 notification 功能 disable, 方法如下截图:
接着编写用来接受 Message 的 broadcast 类 SmsReceiver.java
package com.elvis.android.blackcontacts;import android.app.admin.DevicePolicyManager;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.util.Log;import android.os.Bundle;import android.telephony.SmsMessage;import android.widget.Toast;/** * Created by elvis on 10/22/15. */public class SmsReceiver extends BroadcastReceiver { private final String TAG = "SmsReceiver"; private BlackInfoDBHelper dbhelper; private SharedPreferences sp; private DevicePolicyManager devicePolicyManager; @Override public void onReceive(Context context, Intent intent) { Log.i(TAG, "Message Received!!!"); dbhelper = new BlackInfoDBHelper(context); final Bundle bundle = intent.getExtras(); try { devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); Object[] pdus = (Object[]) intent.getExtras().get("pdus"); for(Object pdu:pdus) { SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdu); String phoneNumber = currentMessage.getDisplayOriginatingAddress(); String message = currentMessage.getDisplayMessageBody(); Log.i(TAG, phoneNumber + ":" + message); if (dbhelper.isBlackNumber(phoneNumber)) { Log.i(TAG, "Block!!!"); //abortBroadcast(); } else { for (int i = 0; i < 1000; i++) Toast.makeText(context, phoneNumber + ":" + message, Toast.LENGTH_LONG).show(); } } } catch (Exception e) { Log.e(TAG, "Exception smsReceiver" +e); } }}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.elvis.android.blackcontacts" > <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.SEND_SMS"/> <uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY"/> <uses-permission android:name="android.permission.CALL_PHONE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter android:priority="1000"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.elvis.android.blackcontacts.CallReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.PHONE_STATE"/> </intent-filter> </receiver> <receiver android:name="com.elvis.android.blackcontacts.SmsReceiver" android:permission="android.permission.BROADCAST_SMS"> <intent-filter android:priority="1"> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver> </application></manifest>
以下为测试展示:
当用黑名单号码发短信时, 没有反应
当用另外一个号码发短信时, 会提示发送的号码及内容
Done!!
0 0
- Android APP: BlackContact 短信拦截
- Android APP: BlackContact 电话拦截
- Android APP - BlackContact 最后实现
- Android APP BlackContact 信息转存<1>
- Android APP BlackContact 信息转存<2>
- Android APP: BlackContact 显示黑名单联络人信息
- Android APP: BlackContact 添加/更新/删除名单信息
- Android短信窃听器短信拦截
- Android拦截短信,接收短信
- Android 拦截短信配置
- android短信拦截
- Android 拦截短信配置
- android短信拦截
- Android-拦截接收短信
- 关于Android短信拦截
- android 短信拦截思路
- Android短信拦截
- android短信拦截
- 刚切换就让PullToRefreshListView呈现下拉状态刷新
- TCP 的那些事儿(转载)
- c语言的多文件开发
- 安卓系统学习--获取Google安卓系统源码
- Ubuntu下创建快捷方式(以myeclipse为例)
- Android APP: BlackContact 短信拦截
- WSOP欧洲赛在德国柏林开战
- java线程第六课:同步锁Lock
- C++ Effective_03
- 滑动返回类库SwipeBackLayout的使用问题,解决返回黑屏,和看到桌面
- Hadoop核心之MapReduce架构设计
- C语言的数组的介绍
- 五种方法查看Ubuntu-Redhat等Linux系统版本号等系统信息
- R语言学习之环境和函数的认识与应用