2013-03-31 6 views
7

Android SMS mesajlarını programlı olarak silmek için bazı kodum var ama onReceive'de silmeye çalıştığımda SMS silinmez. Sonra yeni bir SMS silinmez onReceived bu yapıştırdığınızdaSMS'leri aldıktan sonra silme Gecikme olmadan

Örnek kod 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()); 
} 

silin.

+0

Herhangi bir çözüm var mı? –

+0

@ user2229896 cevabı kabul eder, böylece stackoverflow üzerindeki cevapsız listeden kaldırılır. – Ayush

cevap

5

Sen Manifest'inizde dosyaya erişimi ekleyebilir ve SMS Alıcısı sınıfınönceliğini artırmak gerekir

o (Tasarruf SMS gibi herhangi OS seviyesi operasyonları öncesi SMSReceiver arayacak olmasıdır
<receiver android:name=".SMSReceiver" > 
    <intent-filter android:priority="1000"> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver> 

, bildirim, SMS Sesi Ve benzeri.).

Sonra abortBroadcast (eklemem gerekiyor SMSReceiver OnReceive()) tüm

Cheers

Ayush Şah

0

var başka yayınlar

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

iptal etmek sms'u 01 ile silmeniz gerekir

getContentResolver().delete(Uri.parse("content://sms/" + smsid), null, null);