2014-09-27 113 views
1

我想在我的應用中收到短信,但我不希望我的Android顯示關於該事件的通知。短信接收不通知android 4.4.2

我是申報

<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)(注三星3)

回答

1

與奇巧(4.4),您的應用程序將需要爲了抑制通知默認的短信應用,作爲默認的應用程序正在啓動負責發佈它們。試圖中止SMS_RECEIVED廣播不再有效。系統忽略任何中止廣播的企圖。此外,默認應用程序將偵聽廣播,該廣播無法中止,因爲廣告僅傳遞到默認應用程序。您可以參考以下鏈接瞭解如何讓您的應用成爲默認的短信應用。

Getting Your SMS Apps Ready for KitKat