码迷,mamicode.com
首页 > 移动开发 > 详细

安卓短信过滤器小程序

时间:2015-03-18 15:55:45      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:广播   技术   短信   拦截   安卓   

对于安卓的短信广播接受者支持,谷歌应该在安卓4.2以后就开始弱化了,也就是配置起来较麻烦唯一,但是到了5.0的时候就应该完全不支持了。因为谷歌认为这种技术对用户个人隐私造成很大影响,事实上也正是如此,黑客可以很容易的获取到用户的短信。
下面写一个短信过滤的小demo。

/*
*创建一个短信接收器,继承广播接受者
*/
public class SmsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("短信到来了。 。。。");
        Object[] objs = (Object[]) intent.getExtras().get("pdus");
        for (Object obj : objs) {
            // 得到短信对象
            SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) obj);
            String body = smsMessage.getMessageBody();
            String sender = smsMessage.getOriginatingAddress();
            System.out.println("body:" + body);
            System.out.println("sender:" + sender);
            // 终止掉当前的广播。
            if ("5556".equals(sender)) {
                abortBroadcast();
            }
        }
    }

}

需要在在AndroidManifest.xml配置对应的权限:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.itheima.smsreceiver"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
 <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.itheima.smsreceiver.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name="com.itheima.smsreceiver.SmsReceiver">
            <intent-filter android:priority="1000">
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
        </receiver>
          <!-- 配置广播接受者 -->
        <receiver android:name="com.itheima.smsreceiver.OutCallReceiver">
            <intent-filter android:priority="1000">
                <!-- 配置广播接收者关心的事件是外拨电话 -->
                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>

然后模拟给手机发短信,就能拦截短信了。

技术分享

Log信息:
技术分享

安卓短信过滤器小程序

标签:广播   技术   短信   拦截   安卓   

原文地址:http://blog.csdn.net/rootusers/article/details/44411261

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!