Android Wear Emulator Oreo FCM Сообщения не получены
Я пытаюсь получить уведомление FCM об эмуляторе износа Android, работающем под управлением Android Oreo API 26.
Я правильно зарегистрировал приложение на firebase, токен firebase печатается в журнале, а также создается канал уведомлений.
Я использую консоль Firebase, чтобы отправить сообщение, но оно не получает на износ. Консоль сообщает, что отправлено 0 сообщений, получено 0. Отправляю уведомление с консоли под тем же именем через канал уведомлений testing_channel
,
Требуется ли время, чтобы получить на износ?
Манифест декларации:
<service
android:name=".Services.NotificationInstanceService"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
Класс обслуживания:
public class NotificationInstanceService extends FirebaseInstanceIdService{
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken() ;
Log.i("TAG", "onTokenRefresh: " + refreshedToken);
}
}
AppController:
public class AppController extends Application{
@Override
public void onCreate() {
super.onCreate();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String id = "testing_channel";
CharSequence name = "Testing";
String description = "This channel is primarily for testing";
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = null;
mChannel = new NotificationChannel(id, name, importance);
mChannel.setDescription(description);
mChannel.enableLights(true);
mChannel.setLightColor(Color.RED);
mChannel.enableVibration(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
mNotificationManager.createNotificationChannel(mChannel);
Log.i("TAG", "onCreate: NOTIFICATION CHANNEL CREATED" );
}
}
}
2 ответа
Всегда желательно тестировать push-уведомления на реальном устройстве. Вы можете протестировать push-уведомления на эмуляторе, если цель эмулятора использует версию API Google для получения push-уведомлений. Попробуйте скомпилировать свой проект Android, используя цель API Google. Я думаю, что это необходимо для тестирования.
Вы должны использовать последнюю версию библиотеки AppCompat в настоящее время 26.0.2
compile "com.android.support:appcompat-v7:26.0.+"
В Android O обязательно использовать канал с вашим Notification Builder
ниже приведен пример кода, который работает для меня:
// Sets an ID for the notification, so it can be updated.
int notifyID = 1; String CHANNEL_ID = "my_channel_01"; // Идентификатор канала.
NotificationCompat notification =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("My notification")
.setContentText("Hello World!")
.setChannelId(CHANNEL_ID).build();
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mNotificationManager.createNotificationChannel(mChannel);
}
// Issue the notification.
mNotificationManager.notify(notifyID , notification);
и использовать цель "API Google" (любая версия) для получения push-уведомлений