das ist nicht das erste Mal, ich frage mich, wie GCM/FCM funktioniert, wenn die Anwendung im Hintergrund ist.Funktioniert FCM-Messaging gut für nicht veröffentlichte Apps?
Und jetzt bin ich meine Anwendung ändern Ich merke, dass es data
Nachrichten nicht empfängt, wenn die Anwendung im Hintergrund ist, während die gleiche Nachricht von der Anwendung im Vordergrund gut empfangen wird.
Wenn ich das veröffentlichte von Google Play installiere, funktioniert es in allen Fällen gut.
Wenn ich das Projekt der veröffentlichten Anwendung zurückbekomme und es neu erstelle, werden FCM-Nachrichten nicht empfangen, wenn sich die App im Hintergrund befindet. Das ist ein Albtraum.
Also ich frage mich, ob FCM vollständig für unveröffentlichte Anwendung funktioniert!?!
Meine Botschaft ist (von Advanced REST-Client getestet):
{
"registration_ids": [
"feWpp3aQ8sQ:A...dclQ1hSttsf",
"feDmzDRi-gw:A...O9ur7oXi",
"f7dbqek_rPo:APA91bEu...a1rSje0bNmPq8"
],
"data": {
"id": 19,
"title": "Title test",
"msg": "Text of the test",
"code": 2,
"infosUrl": "www.myexample.com",
"eventLocation": "Nowhere",
"latitude": 47.90022515672,
"longitude": 15.0196307059377,
"startDate": "2016/05/14 20:00",
"endDate": "2016/05/14 22:00",
"publishEndDate": "",
"image": ""
},
"delay_while_idle": false,
"priority": "high",
"content_available": true
}
Mein Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.example"
android:installLocation="auto"
android:versionCode="52"
android:versionName="@string/app_version">
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:logo="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
</activity>
<activity
android:name=".PreferencesActivity"
android:label="@string/label_preferenceScreen"/>
<activity
android:name=".FragmentPreferences"
android:label="@string/label_preferenceScreen"/>
<service android:name=".MyFcmListenerService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name=".MyInstanceIDListenerService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<service
android:name=".RegistrationIntentService"
android:exported="false" />
</application>
Mein gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:24.0.0'
compile 'com.android.support:support-annotations:24.0.0'
compile 'org.osmdroid:osmdroid-android:[email protected]'
compile 'com.google.firebase:firebase-messaging:9.2.0'
compile 'com.google.android.gms:play-services-location:9.2.0'
compile 'com.google.android.gms:play-services-appindexing:9.2.0'
compile 'com.android.support:appcompat-v7:24.0.0'
}
apply plugin: 'com.google.gms.google-services'
Und der Zuhörer:
public class MyFcmListenerService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage fcmMessage) {
Map data = fcmMessage.getData();
int code = Integer.parseInt((String) data.get("code"));
switch (code) {
case 1: // Event
....
break;
default:
break;
}
}
}
Haben Sie solch ein seltsames Problem erlebt ??
Die Nachricht wird erfolgreich an das Gerät gesendet. Ich merke gerade, dass selbst bei einem zuvor laufenden Projekt (laufende App von Google Play) der Hintergrundempfang nicht mehr funktioniert, sobald das Projekt neu aufgebaut wurde ... Das kann ich jetzt nicht verstehen. und es ist nicht spezifisch für irgendein Gerät. – 2ndGAB