如何在Android上分析传入的短信?

我怎样才能在Android的代码,使我的应用程序可以分析一个传入的短信,也许阻止它或做一些事情(也许移动到一个不同的短信文件夹)之前,SMS实际上引发了一个通知告诉用户一个新的短信? 我会瞄准Android 2.1及以上。

我想分析传入的用户指定的垃圾邮件的短信,如果发现将要删除/标记为已读/将邮件移动到不同的文件夹。

  • 在环聊2.0中启用短信支持打破了我的应用程序中的SMS_RECEIVED的BroadcastReceiver
  • 如何在Android中读取新消息中的消息内容?
  • 以编程方式删除Android SMS
  • 这是可能的隐藏/更改发件人手机号码,而在Android发送短信?
  • 在Android中创build一个SMS应用程序?
  • 检测短信传入和传出
  • Android发送SMS线程中可见的SMS(无GUI)
  • 阅读特定发件人的所有短信
  • 我使用这个代码作为BroadcastReceiver:

    public void onReceive(Context context, Intent intent) { //this stops notifications to others this.abortBroadcast(); //---get the SMS message passed in--- Bundle bundle = intent.getExtras(); SmsMessage[] msgs = null; String str = ""; if (bundle != null) { //---retrieve the SMS message received--- Object[] pdus = (Object[]) bundle.get("pdus"); msgs = new SmsMessage[pdus.length]; for (int i=0; i<msgs.length; i++){ msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); str += "SMS from " + msgs[i].getOriginatingAddress(); from = msgs[i].getOriginatingAddress(); str += " :"; str += msgs[i].getMessageBody().toString(); msg = msgs[i].getMessageBody().toString(); str += "\n"; } if(checksomething){ //make your actions //and no alert notification and sms not in inbox } else{ //continue the normal process of sms and will get alert and reaches inbox this.clearAbortBroadcast(); } } 

    请记住将其添加到清单中,并为广播或短信添加最高优先级(100)将先到达收件箱并获取警报通知。

      <receiver android:name=".SmsReceiver"> <intent-filter android:priority="100"> <action android:name="android.provider.Telephony.SMS_RECEIVED"></action> </intent-filter> </receiver> 

    希望它可以帮助你。

    那么你可以陷入传入的短信,但我认为你将无法阻止通知…..
    如果你想删除短信这是一个线程,可以帮助….
    如何以编程方式从Android的收件箱中删除短信?

    此代码适用于我的2.3.3设备。 HTC MyTouch 4g幻灯片。 abortBroadcast禁止状态栏上的notificationsound +通知+不允许SMS转到收件箱。 有些用户提到,它不能在真实的设备上工作,只能在仿真器上工作,但情况并非总是如此。 如果优先级是100,那么在这个特定的设备上代码按预期工作。