Я хотел бы удалить смс, полученные с номера телефона, так быстро, чтобы он не показывался пользователю (чтобы "заблокировать" этот номер телефона, который спамит пользователя). Я также хочу, чтобы мое приложение для Android показывало макет, но это невозможно сделать одновременно!
Это мой метод удаления смс:
public void deleteSMS(Context context, String number) {
try {
Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uriSms,
new String[] { "_id", "thread_id", "address",
"person", "date", "body" }, null, null, null);
if (c != null && c.moveToFirst()) {
do {
long id = c.getLong(0);
String address = c.getString(2);
if (address.equals(number)) {
context.getContentResolver().delete(
Uri.parse("content://sms/" + id), null, null);
Toast.makeText(this, "SMS deleted", Toast.LENGTH_SHORT).show();
}
} while (c.moveToNext());
}
} catch (Exception e) {
}
Затем, чтобы заблокировать номер телефона «123456», я делаю:
setContentView(R.layout.activity_main);
int r = 0;
while (r<1){
deleteSMS(this, "123456");}
Приложение отлично удаляет смс всякий раз, когда я его отправляю, но не показывает макет или тосты. Также, когда я просто делаю это:
setContentView(R.layout.activity_main);
deleteSMS(this, "123456");
Показывает всю раскладку, тосты и удаление смс. У вас есть идея, чтобы исправить это?
it show all the layout, toasts, and delete the sms
... разве это не то, что вы хотите сделать? - person zgc7009   schedule 12.11.2014