2015-08-28 53 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);