短信接收没有通知android 4.4.2

时间:2014-09-27 14:42:43

标签: android notifications sms

我想在我的应用中收到短信,但我不希望我的Android显示有关该事件的通知。

我被宣布

<receiver android:name="mypackage.SMSReceiver">
   <intent-filter>
     <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
   </intent-filter>
 </receiver>

<uses-permission android:name="android.permission.RECEIVE_SMS" />

书面代码

public class SMSReceiver extends BroadcastReceiver
{
  @Override
  public void onReceive(Context context, Intent intent)
  {
    Bundle extras = intent.getExtras();

    Object[] pdus = (Object[])extras.get("pdus");
    for (Object pdu: pdus)
    {
      SmsMessage msg = SmsMessage.createFromPdu((byte[])pdu);

      String origin = msg.getOriginatingAddress();
      String body = msg.getMessageBody();

      // Parse the SMS body
      if (isMySpecialSMS)
      {
        // Stop it being passed to the main Messaging inbox
        abortBroadcast();
      }
    }
  }
}

并尝试设置优先级

<intent-filter android:priority="100">

但不行!电话显示通知!

拥有Android 4.4.2(API 19)(Samsung Note 3)

1 个答案:

答案 0 :(得分:1)

从KitKat(4.4)开始,您的应用程序将需要成为默认的SMS应用程序以禁止通知,因为默认应用程序负责发布它们。试图中止SMS_RECEIVED广播不再有效。系统会忽略任何中止该广播的尝试。此外,默认应用程序侦听SMS_DELIVER广播,该广播也无法中止,因为它仅传送到默认应用程序。您可以参考以下链接,了解有关使您的应用有资格成为默认短信应用的信息。

Getting Your SMS Apps Ready for KitKat