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());
}
}
Wie haben Sie Ihr Problem gelöst? – Erum
@ErumHannan Nein. Wie unten beantwortet, ist es nicht möglich –
Ich habe erfolgreich alle Posteingang Nachrichten entfernt, möchten Sie das gleiche tun? – Erum