簡體   English   中英

Android,當服務當前不可用時,通過Telephony.SMS_RECEIVED操作接收廣播

[英]Android , Receiving broadcast with Telephony.SMS_RECEIVED action when service is currently unavailable

現在,我正在升級我的應用程序,該應用程序可以幫助發送SMS來使收件人數量成倍增長。

我的目標是檢查特殊情況下的發送進度,例如在提供程序服務不可用時:

RESULT_ERROR_NO_SERVICE(失敗,因為服務當前不可用)

在大約一年之前,我進行了相同的測試,並且一切都按需要進行,當我關閉電話提供商服務或發送異常號碼時,觸發了以下情況之一:

RESULT_ERROR_GENERIC_FAILURE
RESULT_ERROR_NO_SERVICE
RESULT_ERROR_NULL_PDU
RESULT_ERROR_RADIO_OFF

據我了解,這種情況是在我的廣播接收器二重奏中收到的,我要求在我的廣播接收器意圖過濾器中偵聽android.provider.Telephony.SMS_RECEIVED操作,並且此調用來自系統設備。

我了解了意圖過濾器的優先級,並且還檢查了哪些廣泛的強制轉換接收器使用queryBroadcastReceivers在我的系統上運行,刪除了所有嘗試偵聽相同操作並將“我的過濾器優先級”設置為“最大”的應用程序,使用的值大於SYSTEM_LOW_PRIORITY並且小於SYSTEM_HIGH_PRIORITY”(2147483647)。

不幸的是,當我發送短信時,提供商不在廣播接收器上,卻什么也沒收到,而當我將其轉回時,一切正常。

是什么原因引起的?

謝謝 !

廣播將有不同的詳細信息,您可以像下面的示例一樣訪問。 在我的示例中,如果有錯誤,我只是在敬酒該錯誤,但是您可以按照自己的意願做

BroadcastReceiver receiver2 = new BroadcastReceiver() {
    @Override
    public void onReceive(Context arg0, Intent arg1) {
        switch (getResultCode())
        {
            case Activity.RESULT_OK:
                Toast.makeText(arg0, "SMS sent",
                        Toast.LENGTH_SHORT).show();
                break;
            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                Toast.makeText(arg0, "Generic failure",
                        Toast.LENGTH_SHORT).show();
                break;
            case SmsManager.RESULT_ERROR_NO_SERVICE:
                Toast.makeText(arg0, "No service",
                        Toast.LENGTH_SHORT).show();
                break;
            case SmsManager.RESULT_ERROR_NULL_PDU:
                Toast.makeText(arg0, "Null PDU",
                        Toast.LENGTH_SHORT).show();
                break;
            case SmsManager.RESULT_ERROR_RADIO_OFF:
                Toast.makeText(arg0, "Radio off",
                        Toast.LENGTH_SHORT).show();
                break;
        }
    }
};

希望能幫助到你 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM