Ich weiß, das ist eine Frage, die hier gefragt wird, aber ich habe die meisten Barebones Implementierung eines SMS BroadcastReceiver in meiner Android-Karten-App und es wird nicht ausgelöst, egal was ich versucht habe . Ich habe gerade mein Telefon gelöscht, sodass keine anderen Apps den Empfänger stören sollten. Tatsächlich habe ich die App meines Freundes ausprobiert, die die gleiche Funktion verwendet, aber seine Implementierung funktionierte, und meine tat es nicht, obwohl der Code fast genau derselbe war. Ich weiß, es ist ein Schuss in die Dunkelheit, aber ich habe mich gefragt, ob Sie vielleicht wissen, warum der folgende Code nicht ausgeführt wird.Android SMS BroadcastReceiver nicht feuern
AndroidManifest.xml
<uses-feature android:name="android.hardware.telephony" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
SMSReceiver
public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("msg", "called");
}
}
Die Mindest SDK ist 18 und das Ziel 23 Vielen Dank für Ihre Hilfe!
In welcher Android-Version läuft Ihr Telefon? Befindet sich Ihr Receiver im selben Ordner wie "MapsActivity"? Haben Sie Ihre App nach der Installation mindestens einmal gestartet, um sie aus dem Zustand _stopped_ zu entfernen? –
Wahrscheinlich sollte angegeben werden .. Ich habe Android 6.0.1 auf einem Nexus 6. Und ja, sie sind beide im selben Ordner, und beide sind im selben Paket. Was die letzte Frage betrifft ... ich bin mir nicht sicher. Ich habe die Schaltfläche "Debug" in Android Studio gedrückt, um die App zu starten. Ich habe auch die installierte App auf meinem Handy geschlossen und wieder geöffnet. Der Empfänger feuert immer noch nicht. – Nickersoft
Mögliches Duplikat von [Android Erlaubnis funktioniert nicht, selbst wenn ich es erklärt habe] (http://stackoverflow.com/questions/32635704/android-permission-doesnt-work-even-if-i-have-declared-it) –