Ciao a tutti ho creato un'applicazione che comunica con "se stessa" (ovviamente su un secondo terminale) tramite SMS.
Essendo le comunicazioni con un formato poco User-Friendly (e visto che è cmq un messaggio di comunicazione interna che l'utente non deve vedere) vorrei che l'sms ricevuto venga cancellato dopo il parsing delle informazioni contenuto in esso
Stringhe nel Manifest
1<uses-permission android:name="android.permission.READ_SMS" />
2<uses-permission android:name="android.permission.SEND_SMS"/>
3<uses-permission android:name="android.permission.RECEIVE_SMS"/>
4<uses-permission android:name="android.permission.WRITE_SMS" />
61<receiver android:name="MyBroadcastReceiver" android:enabled="true">
2<intent-filter>
3<action android:name="android.provider.Telephony.SMS_RECEI VED"/>
4<category android:name="android.intent.category.DEFAULT" />
5</intent-filter>
6</receiver>
Dopo aver controllato che l'sms ricevuto sia del formato che mi interessa (visto che intercetto tutti gli sms) e aver estratto le informazioni per cancellare io procedo così
211String smsBody = ......;
2Cursor c = act.managedQuery
3(
4Uri.parse("content://sms/"),
5new String[]{"_id"},
6"body = '" + smsBody + "'",
7null,
8null
9);
10
11c.moveToFirst();
12if (c.getCount() > 0)
13{
14long smsID = c.getLong(0);
15getContentResolver().delete
16(
17Uri.parse("content://sms/" + smsID),
18null,
19null
20);
21}
Il problema qual è.... il cursor non ritorna nessun elemento e l'smsID ritorna -1. E' ovvio che sto sbagliando qualcosa. magari anziche cercare l'uri diretto dell'sms manualmente c'è un metodo messo a disposizione ma non ho trovato nessun riferimento.
Questo è il primo problema che vorrei risolvere (poi vorrei fare lo stesso con l'sms inviato)
Grazie ciao