我是android开发的新手。发布此问题之前,我已经检查了是否发布了相同的问题并找到了解决方案。我找不到,因此在这里发布。
我正在尝试获取FCM令牌并使用下面的代码。
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (!task.isSuccessful()) {
Log.w(TAG, "getInstanceId failed", task.getException());
return;
}
// Get new Instance ID token
String token = task.getResult().getToken();
// Log and toast
Log.d(TAG, token);
}
});
我没有得到任何错误。但是方法onComplete没有得到执行。
请有人帮我。我已经尝试了几天了。
请注意,根据有关SOF的一些建议,我在.SuccessfulListener上也遵循了。但是,同样的问题。
我正在使用以下物品。
Manifest:
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
App level Gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.abc.xyz"
minSdkVersion 21
multiDexEnabled true
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.google.android.gms:play-services-tasks:16.0.1'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.google.firebase:firebase-messaging:17.5.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'com.google.firebase:firebase-auth:16.2.0'
implementation 'com.google.firebase:firebase-firestore:18.2.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.google.firebase:firebase-database:16.1.0'
}
apply plugin: 'com.google.gms.google-services'
Project Gradle:
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.google.gms:google-services:4.2.0'
答案 0 :(得分:0)
addOnCompleteListener在后台线程上运行,因此尚不清楚何时完成。 我建议在自定义FirebaseMessagingService中使用onNewToken(String token):
public class FireBaseCustomReciver extends FirebaseMessagingService {
private static final String TAG = "aaa";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// ...
}
@Override
public void onNewToken(String token) {
Log.e("aaa", "Refreshed token: " + token);
}
}