android — Удалить смс андроид после получения Без задержки" />

Удалить смс андроид после получения Без задержки

У меня есть код для программного удаления SMS-сообщений Android, но когда я пытаюсь удалить его в onReceive, SMS не удаляется.

Пример кода для удаления смс

try {
    // mLogger.logInfo("Deleting SMS from inbox");
    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);
            long threadId = c.getLong(1);
            String address = c.getString(2);
            String body = c.getString(5);

            if (message.equals(body) && address.equals(number)) {
                // mLogger.logInfo("Deleting SMS with id: " + threadId);
                context.getContentResolver().delete(Uri.parse("content://sms/" + id), null, null);
            }
        } while (c.moveToNext());
    }
} catch (Exception e) {
    // mLogger.logError("Could not delete SMS from inbox: " +
    // e.getMessage());
}

Когда я вставляю это в onReceived, то новое SMS не удаляется.

7 голосов | спросил user2229896 31 MarpmSun, 31 Mar 2013 22:42:24 +04002013-03-31T22:42:24+04:0010 2013, 22:42:24

2 ответа


0

Вам необходимо добавить разрешения в свой файл манифеста и увеличить приоритет вашего Приемника SMS класса

<receiver android:name=".SMSReceiver" > 
    <intent-filter android:priority="1000"> 
        <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver>

Это связано с тем, что он вызывает SMSReceiver перед выполнением любых операций на уровне операционной системы, таких как (сохранение SMS, уведомление, звук SMS и т. д.).

Затем в SMSReceiver onReceive () необходимо добавить abortBroadcast () , чтобы прервать дальнейшие трансляции

public void onReceive(Context context, Intent intent) {
  abortBroadcast();
}

это все

веселит

Аюш Шах

ответил Ayush 1 AMpMon, 01 Apr 2013 01:03:11 +040003Monday 2013, 01:03:11
0

Вы должны удалить sms с помощью Smsid

getContentResolver().delete(Uri.parse("content://sms/" + smsid), null, null);
ответил Ahmad 14 Mayam15 2015, 08:03:04

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132