2016-04-25 5 views
1

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!

+1

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? –

+0

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

+0

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) –

Antwort

0

Behoben! Aus irgendeinem Grund funktionierte das Ändern des Ziel-SDK von 23 auf 19 :)