2014-01-16 28 views
1

我有問題。在我的應用程序安裝後,SMS廣播被成功攔截。但重新啓動後,所有截獲短信廣播仍然在彈出通知欄(從標準SMS應用)Android。錯誤。重啓後彈出短信通知

廣播接收器:

public class OwnSmsBroadcastextends BroadcastReceiver{ 
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; 
public void onReceive(Context context, Intent intent) { 

     final Bundle bundle = intent.getExtras(); 
     if (intent.getAction().equals(SMS_RECEIVED)) { 
      abortBroadcast(); 

     try {... 

清單:

<receiver android:name=".OwnSmsBroadcast" android:permission="android.permission.BROADCAST_SMS"> 
      <intent-filter android:priority="10000"> 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
       <action android:name="android.provider.Telephony.SMS_DELIVERED" /> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
    </receiver> 

爲什麼重啓後所有攔截彈出窗口notofications?

+0

您測試的Android版本是?你確定沒有安裝第三方短信應用嗎? – Jim

+0

設備 - Nexus S. Android 4.1.2 Android純 - 其他未安裝的應用程序 – user1755546

+0

「第三方」我也在問谷歌環聊(舊的Google語音) - 是否已安裝? – Jim

回答

1

Google環聊2.0會導致SMS_RECEIVED意圖出現問題。意圖過濾器設置爲MAX_INTEGER值2,147,483,647 - 超過您的值10,000。文檔中說,PRIORITY不應超過1,000(應設置的最高值爲999),否則會導致「不可預知的行爲」 - 儘管通常Android的優先級越高。

要解決此問題,請在環聊中停用短信或將其卸載。

僅供參考 - 只有默認的SMS應用程序纔會收到它,SMS_DELIVERED無效。所以這是沒有必要的,除非你也實現了其他幾個功能才能成爲默認的短信應用程序。在KitKat中,SMS_RECEIVED仍然是廣播,所以你會收到通知,但你不能放棄它。

+0

問題不在環聊中,在其他應用程序中沒有問題(Go SMS Pro) – user1755546

+0

首先,我強調文檔中包含「不可預知的行爲」,包括GoSMS。其次,環聊隨系統一起安裝,因此它可能具有系統應用權限,例如Google Play,因此作爲系統級應用可以接受優先級別。 – Jim