2013-03-25 89 views
2

我想製作一個廣播接收器,當設備關機時,它會向某個電話號碼發送簡單的短信。當設備關閉時發送短信

這裏是我的代碼:

public class ShutDownReceiver extends BroadcastReceiver { 

SmsManager sms = SmsManager.getDefault(); 

@Override 
public void onReceive(Context context, Intent intent) { 

    Log.i("Log","Device shutting down NOW!"); 

         //An actual phone number here 
    sms.sendTextMessage("0670#######", null, "This is a text for sms", null, null); 

     } 

}

到目前爲止,結果:

我可以清楚地看到日誌消息時,我關閉設備。 因此,BroadcastReceiver在關閉時運行良好,但沒有短信發送,沒有例外。

我試着用簡單的按鈕點擊這個短信發送方法,絕對成功。

所以,我知道,短信發送方法是正確的,我知道,關機接收器是正確的,但由於某種原因,它不發送短信。

對此有何想法? (我與真正的設備,而不是模擬器工作)。

+0

我正在嘗試實現相同的功能,因爲相關的系統服務已被禁用。如果有人能夠實現這一點,請讓我知道。 – Sujay 2013-12-17 10:09:49

回答

1

我使用....

SmsManager.getDefault().sendTextMessage(number, null, smsText, null, null); 

...而且只要是非常有效的

  1. 手機號碼有效
  2. 消息文本不太長
  3. 電話服務可用(是否嘗試了另一個事件以確保服務未收到前已關閉Ë關機?)
  4. android.permission.SEND_SMS被授予

希望這有助於...乾杯!

+0

錯誤..你是什麼意思的數字3?我可以在其他地方發送短信,但無法在關機時發送。我仍然收到關於「關機」的日誌消息。 – 2013-03-25 22:12:07

+1

我在想的是:當你的設備關機時 - 可能是因爲在ShutdownReceiver時刻,你不能再發送消息了,因爲相關的系統服務已被禁用?那麼,我不知道......這只是一個猜測 – Trinimon 2013-03-26 06:44:09

+0

是的,這也是我能想象的第一件事,如果有人能夠直接指向我,這將是很好的。 – 2013-03-27 13:42:37