2014-01-15 125 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