Bonjour à tous,

je débute sur Android et j'essaye de faire fonctionner le tutoriel suivant (cliquez ici) paru sur ce site sur mon mobile android 7.0 mais en vain.

Il paraît simple et correspond à mes attentes, je ne veux rien faire de plus.

Voici quelques informations complémentaires qui peuvent être utiles si vous avez la possibilité de m'aider.

Mon fichier AndroidManifest.xml

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
 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tuto.android">
 
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
 
    <application android:label="@string/app_name">
        <receiver class="com.tuto.android.SMSReceiver"
            android:name="com.tuto.android.SMSReceiver">
            <intent-filter android:priority="100">
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
    </application>
 
</manifest>
Ma classe java SMSReceiver.java :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
package com.tuto.android;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
 
 
public class SMSReceiver extends BroadcastReceiver
{
    private final String   ACTION_RECEIVE_SMS  = "android.provider.Telephony.SMS_RECEIVED";
 
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Log.i("myApp", "entree dans onReceive");
        if (intent.getAction().equals(ACTION_RECEIVE_SMS))
        {
            Log.i("myApp", "sms entrant detecte");
            Bundle bundle = intent.getExtras();
            if (bundle != null)
            {
                Object[] pdus = (Object[]) bundle.get("pdus");
 
                final SmsMessage[] messages = new SmsMessage[pdus.length];
                for (int i = 0; i < pdus.length; i++)  {  messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);  }  if (messages.length > -1)
            {
                final String messageBody = messages[0].getMessageBody();
                final String phoneNumber = messages[0].getDisplayOriginatingAddress();
                Log.i("myApp", "affichage du toast");
                Toast.makeText(context, "Expediteur : " + phoneNumber, Toast.LENGTH_LONG).show();
                Toast.makeText(context, "Message : " + messageBody, Toast.LENGTH_LONG).show();
 
            }
            }
        }
 
    }
 
}

La structure de mon projet dans l'éditeur :
Nom : project_structure.png
Affichages : 146
Taille : 23,8 Ko

Lors de l'installation :
- je n'ai pas d'erreur.
- Je vois bien l'application sur mon mobile, "paramètres" > "applications"
- J'ai autorisé l'application à accéder à mes SMS sur mon mobile.

Dernier point :
Lors de la première installation, j'avais ce message d'erreur, activity not found que j'ai corrigé en faisant : Run -> Edit Configurations et j'ai choisi nothing au lieu de default activity.
Je n'ai pas de mainActivity car ce n'est pas précisé dans le tutoriel, je pense que la déclaration seule dans AndroidManifest.xml suffit.

Problème
Je n'ai pas de messages TOAST qui s'affichent lorsque je reçois un sms et je n'ai pas de logs non plus qui apparaissent dans LogCat (j'ai ajouté des logs dans le code en plus du code du tuto).

Question
Savez-vous si ce tutoriel est toujours opérationnel comme il date de 2011 ?
Sinon pourriez-vous m'orienter vers un tutoriel qui fonctionne s'il vous plaît ?

Si vous pouviez m'aider ou m'aiguiller pour faire fonctionner ce tutoriel, je vous en serai reconnaissant.

Merci d'avance pour votre action.