<service> MyFirebaseInstanceIdService не зарегистрирован в манифесте - PullRequest
0 голосов
/ 28 июня 2018

Я использую сервис FirebaseInstanceIdService для получения обновленного токена. Однако он никогда не звонил и всегда имеет предупреждение

MyFirebaseInstanceIdService не зарегистрирован в манифест

  • FirebaseInstanceIdService

открытый класс MyFirebaseInstanceIdService extends FirebaseInstanceIdService {

@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Timber.d("Refreshed token: " + refreshedToken);
}

}

  • Manifest

    <service
        android:name="MyFirebaseInstanceIdService"
        android:enabled="true"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>
    <service
        android:name="com.arts.m3droid.samatravel.empl.MyMessageService"
        android:enabled="true"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
    

Я добавил сервис для манифеста, используя документацию от firebase, а также с помощью создания нового Сервиса (Файл> Создать> Сервис> Сервис) в Android studio.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Надеюсь, это сработает для вас.

Создайте MyFirebaseInstanceIdService в вашем пакете.

    public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {

        private static final String TAG = "MyFirebaseIIDService";

        @Override
        public void onTokenRefresh() {
            String refreshedToken = FirebaseInstanceId.getInstance().getToken();
            Log.e(TAG, "Refreshed token: " + refreshedToken);
            storeToken(refreshedToken);
        }

        private void storeToken(String token) {
           //Store your token in sharedpreference.
        }
    }

и звоните вот так в Манифесте.

<service android:name=".MyFirebaseInstanceIDService">
                <intent-filter>
                    <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
                </intent-filter>
            </service>
0 голосов
/ 28 июня 2018

Обновите манифест, указав полное имя пакета для вашего класса обслуживания, например:

android:name="com.arts.m3droid.samatravel.empl.MyFirebaseInstanceIdService"

Вы также можете использовать '.' для имени пакета приложения, как показано в документации :

android:name=".MyFirebaseInstanceIdService"

См. Также документацию для названия службы :

Имя подкласса Service, который реализует сервис. это должно быть полное имя класса (например, "Com.example.project.RoomService"). Однако, как сокращение, если первый символ имени - точка (например, «.RoomService»), он добавляется к имени пакета, указанному в элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...