Android 彩信拦截

中国联通经常发一些过期且没有用的彩信,很烦(我强迫症又犯了),试了大部分的可拦截的软件,都只是能拦截短信,无法拦截彩信,自己就写一个,在网上搜了些资料,研究了下实现过程。

1. 在 AndroidManifest.xml 中注册一个广播接收器,优先级要大于系统彩信优先级,如 1000

<!-- MMSReceiver -->
<receiver
    android:name=".receiver.MMSReceiver">
    <intent-filter android:priority="10000">
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
    <intent-filter android:priority="10000">
        <action
            android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
        <data
            android:mimeType="application/vnd.wap.mms-message" />
    </intent-filter>
</receiver>
当然也可以在代码中使用 registerBroadcase() 方法,两种方法的差异性就不扯淡了  android注册广播的两种方式区别  

2. 在 AndroidManifest.xml 中添加相应的权限(如果需要读取彩信内容的话,还需要添加相应的网络权限)

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH" />
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE"/>
3. 定义自己的广播接收器处理类MMSReceiver,这一步是最关键的,也是最不好做的,所有关于接收彩信、拦截彩信都是在这里面处理的。首先需要找到 android 系统未开放的类:  com.google.android.mms.*;,这部分源码可以在 android 系统中找到,当然,我会非常关怀地提供源码地址和下载地址:  源码地址 下载地址 ,为了方便引入工程,我把这个编译了一个 jar 包,在项目的 libs 文件中

在 MMSReceiver.java 文件中,重载 onReceive() 方法:

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    String phone = null;
    String action = intent.getAction();
    // receive mms
    if (action.equals(MMSReceiver.MMS_RECEIVERD)) { 
        ...  ...
        ...  ...
    }
}
代码就不多贴了,可以下载下来看

下载地址: 百度网盘

4. 编译成功后,最好将 MMSFilter.apk 文件 push 到手机系统里,在第 2 步 中添加的一些权限第三方应用没有权限使用的(手机需要 root , root 方法请 Google )

操作方法:

adb push MMSFiler.apk /sdcard/
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
cp /sdcard/SecureSetting.apk /system/app/SecureSetting.apk
mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
reboot

周末愉快~~~~~~


转载于:https://my.oschina.net/zuoyanyouwu/blog/156503

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值