我正在使用FirebaseInstanceIdService的服务来获取刷新的令牌。
但是,它从未调用过,并且始终具有以下警告:
MyFirebaseInstanceIdService未在
表现
FirebaseInstanceIdService
公共类MyFirebaseInstanceIdService扩展了FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Timber.d("Refreshed token: " + refreshedToken);
}
}
表现
<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中使用创建新服务(“文件”>“新建”>“服务”>“服务”)将服务添加到清单中。
最佳答案
更新清单以指定服务类的完整软件包名称,例如:
android:name="com.arts.m3droid.samatravel.empl.MyFirebaseInstanceIdService"
您也可以使用“。”应用程序包名称,如shown in the documentation:
android:name=".MyFirebaseInstanceIdService"
另请参见documentation for Service name:
实现服务的Service子类的名称。这个
应该是完全合格的类名(例如,
“ com.example.project.RoomService”)。但是,作为简写,如果
名称的第一个字符是句点(例如,“。RoomService”),
它被附加到在
元件。
关于java - <service> MyFirebaseInstanceIdService未在 list 中注册,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51085732/