Хорошо, что я искал эту тему и реализовал все возможное, все еще не получив успеха. Это классWakefulBroadcastReceiver для GCM не запускает
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.support.v4.content.WakefulBroadcastReceiver;
import android.util.Log;
public final class MyGcmBroadcastReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("output something","Output");
ComponentName comp = new ComponentName(context.getPackageName(),
MyGcmIntentService.class.getName());
startWakefulService(context, (intent.setComponent(comp)));
setResultCode(Activity.RESULT_OK);
}
}
приемника И это содержание menifest Примечания: что я использую другой пакет из другой библиотеки, которая содержит приемник и intentservice
<receiver
android:exported="false"
android:name="lib.package.name.MyGcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
</intent-filter>
<category android:name="my.demo.app" />
</receiver>
<service android:exported="false" android:name="lib.package.name.MyGcmIntentService" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<permission android:name="my.demo.app.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="my.demo.app.permission.C2D_MESSAGE" />
Сервер бросает "multicast_id": 8642316007520492123, "успех": 1, "неудача": 0, "canonical_ids": 0, "Результаты":
Мой GCM намерение служба
public final class MyGcmIntentServiceextends GcmListenerService{
public static final int NOTIFICATION_ID = 1;
NotificationCompat.Builder builder;
public MyGcmIntentService() {
Log.d("Test GCMMMMMMMMM","GCM SDS");
}
String app_tag="MyGcmIntentService->MyGcmIntentService";
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
Log.d(app_tag, "From: " + from);
Log.d(app_tag, "Message: " + message);
/**
* Production applications would usually process the message here.
* Eg: - Syncing with server.
* - Store message in local database.
* - Update UI.
*/
/**
* In some cases it may be useful to show a notification indicating to the user
* that a message was received.
*/
sendNotification("web-demo",message);
}
И я не вижу никакого выхода в логарифме. Пожалуйста, помогите мне!
спасибо. Попробуем это скоро. –
Также рассмотрите устройство, в котором вы тестируете свое приложение. GCM работает только на Android 2.2+. – Jaye
Ive отредактировал мой вопрос и добавил мои коды обслуживания Intent. Пожалуйста, смотрите. Это не срабатывает. Я заменил код в манифесте, как вы сказали. –