我想只需单击一下按钮即可删除消息中的所有消息。但是我已经尝试了下面的编码,它行不通...有人可以帮助我实现这一目标吗?谢谢...
public class DeleteSMSActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
Button press;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
press = (Button)findViewById(R.id.button1);
press.setOnClickListener(this);
}
public void onClick(View view){
ContentResolver cr = getContentResolver();
Uri inboxUri = Uri.parse("content://sms/inbox");
Cursor c = cr.query(inboxUri , null, null, null, null);
while (c.moveToNext()) {
// Delete the SMS
String pid = c.getString(0); // Get id;
String uri = "content://sms/" + pid;
cr.delete(Uri.parse(uri), null, null);
}
}
}
我应该添加什么清单?使用我的Galaxy Tab 2
尝试使用_id
删除:
Cursor c = getApplicationContext().getContentResolver().query(Uri.parse("content://sms/"), null, null, null,null);
try {
while (c.moveToNext()) {
int id = c.getInt(0);
getApplicationContext().getContentResolver().delete(Uri.parse("content://sms/" + id), null, null);
}
}catch(Exception e){
Log.e(this.toString(),"Error deleting sms",e);
}finally {
c.close();
}
delete uri是" content://sms/" id;
Uri inboxUri = Uri.parse("content://sms/inbox");
int count = 0;
Cursor c = context.getContentResolver().query(inboxUri , null, null, null, null);
while (c.moveToNext()) {
try {
// Delete the SMS
String pid = c.getString(0); // Get id;
String uri = "content://sms/" + pid;
count = context.getContentResolver().delete(Uri.parse(uri),
null, null);
} catch (Exception e) {
}
}
return count;
您也可以在此处进行询问&在这里以获取有关此主题的更多详细信息。希望它能帮助您。
用于从收件箱中删除SMS的
您需要使用清单中声明的权限
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
现在,您将能够删除收件箱SMS,现在您将无法关闭模拟器
今天,我找到了删除所有无循环的所有消息的方式,只是查询。
mContext.getContentResolver().delete(Uri.parse("content://sms/"), null, null);
按照此链接以获取更多详细信息http://www.wisdomitsol.com/blog/android/sms/programmately-delete-allete-all-messages-in-android