Salut,
j'essaye de programmer une application qui gère la réception d'un SMS sous Android Studio.
Comme début, l'application affiche le contenu du SMS dans un toast. Mais rien ne se passe.
voici le code de la main activity :
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
 
package app.android.smsreciever.smsreciever;
 
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
 
public class smsRecieverMainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sms_reciever_main);
    }
 
}
la code de la classe "IncomingSMS" :
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
45
46
47
48
49
50
51
52
53
54
55
56
 
package app.android.smsreciever.smsreciever;
 
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 IncomingSms extends BroadcastReceiver {
    private final String ACTION_RECEIVE_SMS = "android.provider.Telephony.SMS_RECEIVED";
 
    @Override
    public void onReceive(Context context, Intent intent)
    {
        if (intent.getAction().equals(ACTION_RECEIVE_SMS))
        {
            Bundle bundle = intent.getExtras();
 
            try
            {
                if (bundle != null)
                {
 
                    Object[] pdusObj = (Object[]) bundle.get("pdus");
 
                    int pdusLen = pdusObj.length;
                    for (int i = 0; i < pdusLen ; i++)
                    {
 
                        SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
 
                        String senderNum = currentMessage.getDisplayOriginatingAddress();
                        String message = currentMessage.getDisplayMessageBody();
 
                        Log.i("SmsReceiver", "senderNum: " + senderNum + "; message: " + message);
 
                        // Affiche le toast
                        int duration = Toast.LENGTH_LONG;
                        Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + message, duration);
                        toast.show();
 
                    } // end for loop
                } // bundle is null
 
            } catch (Exception e) {
                Log.e("SmsReceiver", "Exception smsReceiver" +e);
 
            }
        }
        else
            Toast.makeText(context, "Problem to get intent", Toast.LENGTH_LONG).show();
    }
}
le manifest :
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
 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="app.android.smsreciever.smsreciever">
 
 
 
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS"/>
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".smsRecieverMainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".IncomingSms" android:enabled="true">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
    </application>
 
</manifest>
le xml de la main activity :
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
 
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="app.android.smsreciever.smsreciever.smsRecieverMainActivity">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>
S'il vous plaît je vois pas d'où vient l'erreur.
Merci