2014-09-23 20 views
8

Ich möchte SMS von meinem Android-Gerät senden und löschen Sie es von mydevice (Gesendete Nachrichten).Lösche SMS von Android auf 4.4.4 (Betroffene Zeilen = 0 (Null), nach dem Löschen)

SMS werden im Gerät gespeichert (4.4.4) aber SMS wird nicht mit meinem Code gelöscht. nach Löschung betroffener Zeilen = 0 (Null).

Mein Gerät ist 4.4.4.

In anderen Geräten werden SMS nicht gespeichert. Warum werden SMS in Android 4.4.4 gespeichert?

Ich möchte nicht meine gesendeten SMS oder Fehler SMS speichern (die nicht gesendet werden).

bitte helfen Sie mir.

Meine Berechtigungen

<uses-permission android:name="android.permission.SEND_SMS"/> 
<uses-permission android:name="android.permission.READ_SMS" /> 
<uses-permission android:name="android.permission.WRITE_SMS" /> 

mein Code SMS mit postdelay von 5 Sekunden

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       String message = CastApplication.mPref.getString(context.getResources().getString(R.string.pref_message_to_friend), ""); 
       deleteSMS(context, message, number); 

       if (MyCastFragment.getInstance() != null) { 
        MyCastFragment.getInstance().updateView(); 
       } 

       progressDialog.dismiss(); 
       context.finish(); 
      } 
     }, 5000); 

Delete SMS

SmsManager smsManager = SmsManager.getDefault(); 
smsManager.sendTextMessage(number, null, msg, null, null); 

Ich rufe die Methode deleteSMS() von Handler senden

public void deleteSMS(Context ctx, String message, String number) { 
     try { 
      Uri uriSms = Uri.parse("content://sms"); 
      Cursor c = ctx.getContentResolver().query(uriSms, 
       new String[] { "_id", "thread_id", "address", 
        "person", "date", "body" }, null, null, null); 

      Log.i(TAG, "c count......"+c.getCount()); 
      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); 
        String date = c.getString(3); 
        Log.e("log>>>", "0>" + c.getString(0) + "1>" + c.getString(1) + "2>" + c.getString(2) + "<-1>" + c.getString(3) + "4>" + c.getString(4)+ "5>" + c.getString(5)); 
//     Log.e("log>>>", "date" + c.getString(0)); 

//     if (body.contains(getResources().getText(R.string.invite_text).toString()) && address.equals(number)) { 
        if (message.equals(body) && address.equals(number)) { 
         // mLogger.logInfo("Deleting SMS with id: " + threadId); 
         int rows = ctx.getContentResolver().delete(Uri.parse("content://sms/" + id), "date=?",new String[] { c.getString(4) }); 
         Log.e("log>>>", "Delete success......... rows: "+rows); 
         Log.e("log>>>", "Delete success......... body: "+body); 
        } 
       } while (c.moveToNext()); 
      } 

     } catch (Exception e) { 
      Log.e("log>>>", e.toString()); 
      Log.e("log>>>", e.getMessage()); 
     } 
    } 
+0

Wie haben Sie Ihr Problem gelöst? – Erum

+0

@ErumHannan Nein. Wie unten beantwortet, ist es nicht möglich –

+0

Ich habe erfolgreich alle Posteingang Nachrichten entfernt, möchten Sie das gleiche tun? – Erum

Antwort

9

Sofern Ihre App als Standard-SMS-App in Gerät markiert ist, können Sie nicht in der Lage sein, mit SMS-Anbieter zu spielen, bitte SMS Richtlinien für die gleiche lesen für KITKAT

+0

Vielen Dank für die Antwort, können Sie bitte sagen, wie meine App als Standard-SMS-App zu markieren? –

+0

@GangadharNimbally Dieser Link sagt Ihnen, was Sie tun müssen, damit Ihre App ein Standard ist. Es ist keine triviale Aufgabe, da Ihre App dann für viele Dinge verantwortlich ist, mit denen sie wahrscheinlich noch nicht fertig wird. –

+0

@Mike M, gibt es eine Beispiel-App, um Standard-SMS-App zu werden. Bitte teilen Sie es Ich bin arm bei Android –

-1

App Sms bei Kitkat OHNE Standard-SMS-App löschen gewährt .

Sie benötigen nur WRITE_SMS Erlaubnis und AppOpps Manipulation.

Danach können Ihre SMS nach 10 Sekunden nach dem Empfang gelöscht werden, Benachrichtigung wird auch despear.