J'ai une application qui a essentiellement deux récepteurs, un qui reçoit des messages SMS et un qui reçoit des messages MMS. Lorsque l'application fonctionne, elle fonctionne parfaitement, les messages sont reçus et les récepteurs fonctionnent tous les deux. Lorsqu'ils ne sont pas en cours d'exécution, les récepteurs de l'application ne sont pas appelés.L'application ne répond pas à un message SMS reçu, sauf si l'application est en cours d'exécution.
Voici le code de base dans le SMSReceiver:
@Override
public void onReceive(Context context, Intent intent) {
this.context = context;
Log.i(TAG, "Intent received: " + intent.getAction());
Toast.makeText(context,"Message Received SMS",Toast.LENGTH_LONG).show();
}
autorisations Manifest tous là et correcte. Exécution d'un Samsung S7 Edge Android 7.0 (Android 24). Il devrait recevoir les textes quoi qu'il arrive, même s'ils ne sont pas en cours d'exécution ou en arrière-plan.
Manifest:
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<receiver android:name="com.webnation.text2email.receivers.SMSBroadcastReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
<receiver android:name="com.webnation.text2email.receivers.MMSBroadcastReceiver" >
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
Il vous manque probablement l'attribut '' '' '' exporté''' dans le manifeste – ahasbini