FCM令牌在android nougat中返回null
安装我的应用程序FirebaseInstanceId.getInstance().getToken()时,Android Nougat设备(Moto、Sony和Huawei)中未生成FCM令牌。getToken()返回null,但Emulator(Nougat)和Nougat以下版本中生成的FCM令牌。何时调用FCM令牌在android nougat中返回null,android,firebase,firebase-cloud-messaging,android-7.0-nougat,Android,Firebase,Firebase Cloud Messaging,Android 7.0 Nougat,安装我的应用程序FirebaseInstanceId.getInstance().getToken()时,Android Nougat设备(Moto、Sony和Huawei)中未生成FCM令牌。getToken()返回null,但Emulator(Nougat)和Nougat以下版本中生成的FCM令牌。何时调用FirebaseInstanceId.getInstance().getToken()? 您需要在扩展FirebaseInstancedService的服务中等待onTokenRefres
FirebaseInstanceId.getInstance().getToken()
?
您需要在扩展FirebaseInstancedService
的服务中等待onTokenRefresh
回调。这是您的代币可用的时刻
public class FcmTokenService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
try {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
if (refreshedToken != null) {
Log.i("FCM", String.format("Received new registration token from Firebase: token=\"%s\";", refreshedToken));
// ... forward the new token to some point in your app to store it
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
在您的清单中注册服务:
<service android:name=".services.FcmTokenService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
apply plugin: 'com.google.gms.google-services'