2015-08-28 48 views
2

我的應用程序發送的文字是這樣的:反應systemdialog SmsManager

SmsManager smsManager = SmsManager.getDefault(); 
smsManager.sendTextMessage(NUMBER, null, "sms message", null, null); 

發送用戶之前提出他必須確認systemdialog。

「應用程序想發送消息到000」

我想當用戶取消該對話作出反應的情況。有沒有辦法做到這一點?

回答

2

找到了解決我的問題。如果用戶取消對話框,「發送」PendingIntent將失敗。

String SENT = "sent"; 
    Intent sentIntent = new Intent(SENT); 
    PendingIntent sentPI = PendingIntent.getBroadcast(
      getApplicationContext(), 0, sentIntent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 

    registerReceiver(new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      String result = ""; 

      switch (getResultCode()) { 
       case Activity.RESULT_OK: 
        result = "Transmission successful"; 
        break; 
       case 5: // SmsManager.RESULT_ERROR_LIMIT_EXCEEDED 
        // The static variable is hidden. 
        // The user denied sending the sms 
        break; 
       case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
        result = "Transmission failed"; 
        break; 
       case SmsManager.RESULT_ERROR_RADIO_OFF: 
        result = "Radio off"; 
        break; 
       case SmsManager.RESULT_ERROR_NULL_PDU: 
        result = "No PDU defined"; 
        break; 
       case SmsManager.RESULT_ERROR_NO_SERVICE: 
        result = "No service"; 
        break; 
      } 
      Log.i("debug", result); 
     } 

    }, new IntentFilter(SENT)); 

    SmsManager sms = SmsManager.getDefault(); 
    sms.sendTextMessage(SMS_NUMBER, null, MESSAGE, sentPI, null);