2014-01-15 88 views
1

我從我的應用程序發送短信。我想從「發件箱」中刪除發送短信,因爲短信包含訪問設備的PIN碼。短信發送,但刪除不起作用。 。 短信exixst,因爲我能夠在 「光標c_sms」Android刪除發送短信

private void sms_sender(String sms_no, String sms_text) { 
    SmsManager.getDefault().sendTextMessage(sms_no, null, sms_text, null, null); 
    Toast 
      .makeText(MainScreen.this, R.string.text_message, Toast.LENGTH_SHORT) 
      .show(); 

    Cursor c_sms = getApplicationContext().getContentResolver().query(Uri.parse("content://sms/"), null, null, null, null); 
    try{ 
     while(c_sms.moveToNext()) { 
      long id = c_sms.getLong(0); 
      String pid = c_sms.getString(0); 
      String address = c_sms.getString(2); 
      if (address.equals(address)){ 
       int count = getContentResolver().delete(Uri.parse("content://sms/" + id),null,null); 
      } 
     } 
    } 
    catch (Exception e){ 
     Toast 
       .makeText(MainScreen.this, R.string.text_error + e.toString(), Toast.LENGTH_LONG) 
       .show(); 
    } 

} 
+0

它會崩潰嗎?你有沒有發現異常?代碼是否運行沒有崩潰,但短信仍在您的發件箱中?你有刪除短信的權限嗎?請詳細... – Entreco

+0

請注意,除非您的應用程序是用戶的默認SMS客戶端,否則您無法在Android 4.4及更高版本上執行此操作。如果情況並非如此,我建議您想出一些分發PIN碼而不是SMS的其他方式。 – CommonsWare

+0

它沒有崩潰,permision我有SMS_READ,SMS_WRITE。是的,我發送短信,但刪除後,短信仍然在發件箱中。我編譯它爲Android 4.4 ...有沒有辦法如何分配短信,因爲環境是短信網關管理電源開關 – chip

回答

-1

getContentResolver()來讀取它刪除(Uri.parse( 「內容://短信/發送」),「地址=?和body =?「,new String [] {etsendernumber.getText()。toString(),etmessagebody.getText()。toString()});

使用此代碼

+0

歡迎來到SO!請訪問:[如何回答問題](http://stackoverflow.com/help/how-to-answer)。在提供答案時,請進一步解釋並正確識別您的代碼,以便閱讀。 – Olaia