Создание диалога:
private AlertDialog AskOption()
{
AlertDialog myQuittingDialogBox =new AlertDialog.Builder(this)
.setTitle("Security Alert")
.setMessage("Do you want to delete conversation?")
.setIcon(R.drawable.d)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
SharedPreferences xsx = getApplicationContext().getSharedPreferences("ll", Context.MODE_PRIVATE);
nmr = xsx.getString("nmr", "");
removeMessage();
// removeMessage(getApplicationContext(),nmr);
delete_thread(nmr);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create();
return myQuittingDialogBox;
}
Это функция, которая удаляет полный разговор, но он не работает.
private void removeMessage() {
Uri uriSMSURI = Uri.parse("content://sms");
Cursor cur = getApplicationContext().getContentResolver().query(uriSMSURI, null, null, null,null);
String phoneNo, msg;
if (cur.moveToFirst()) {
String pid = cur.getString(1);
// do some process
Toast.makeText(getApplicationContext(), pid, Toast.LENGTH_LONG).show();
Cursor cur2 = getApplicationContext().getContentResolver().query(Uri.parse("content://sms/conversations/" + pid), null, null, null, null);
if (cur2.moveToFirst()) {
////Tried with this with no luck, its Delete the whole Conversation :
String pid2 = cur2.getString(1);
String uri = "content://sms/conversations/" + pid2;
getApplicationContext().getContentResolver().delete(Uri.parse(uri), null, null);
}
}
}
Это еще одна функция, которая удаляет разговор смс определенного номера, но этотакже не работает ... Я также дал разрешения, я не понимаю, где я делаю ошибку.
public void delete_thread(String thread)
{
Cursor c = getApplicationContext().getContentResolver().query(
Uri.parse("content://sms/"),new String[] {
"_id", "thread_id", "address", "person", "date","body" }, null, null, null);
try {
while (c.moveToNext())
{
int id = c.getInt(0);
String address = c.getString(2);
if (address.equals(thread))
{
getApplicationContext().getContentResolver().delete(
Uri.parse("content://sms/inbox/" + id), null, null);
}
// Toast.makeText(Settings.this,nmr+id+" 02",Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
Toast.makeText(Settings.this,e.toString(),Toast.LENGTH_LONG).show();
}
}
Я испробовал почти все представленные здесь решения, но ни одно из них не работает.