voici une fonction que j'ai trouvé sur un site qui supprime un SMS,en sachant son "_id", à partir du téléphone :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
public boolean deleteSms(long smsId) {
        try {
            getContext().getContentResolver().delete(Uri.parse("content://sms/" + smsId), null, null);
            return true;
 
        } catch (Exception ex) {
            return false;
        }
    }
j'ai utilisé cette fonction pour supprimer un sms :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
deleteBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //obtenir l'id du SMS à supprimer :
                long smsId = smsList.get(position).getId();
 
                //appel de la fonction :
                if (deleteSms(smsId))
                    Toast.makeText(getContext(),"SMS id = "+smsId+" supprimé",Toast.LENGTH_LONG).show();
                else
                    Toast.makeText(getContext(),"SMS id = "+smsId+" non supprimé",Toast.LENGTH_LONG).show();
 
                //Enlever le sms de la liste
                smsList.remove(position);
                notifyDataSetChanged();
            }
        });
quand je clique sur le bouton, j'ai bien un message :
SMS id = x supprimé
mais, réellement, le SMS n'est pas supprimé.

J'ai mis dans le manifest :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />