簡體   English   中英

僅在模擬器中調用Android FCM onTokenRefresh()

[英]Android FCM onTokenRefresh() is only called in emulator

使用Firebase onTokenRefresh()函數時遇到問題。 我看到了下面的塊引號。

僅當生成新令牌時才調用FirebaseInstanceIdService中的onTokenRefresh。 如果您的應用先前已安裝並生成令牌,則不會調用onTokenRefresh。 嘗試卸載並重新安裝該應用程序以強制生成新令牌,這將導致調用onTokenRefresh。

但這僅適用於我的第一個仿真器而不適用於設備。

當我嘗試卸載並重新安裝該應用程序以強制在模擬器中生成新令牌時,就生成了令牌。 但是在設備中,沒有生成令牌。 我還嘗試通過創建另一個模擬器來查看是否生成了令牌來安裝該應用程序。 但是,它也沒有。

這是什么問題?..這是我的代碼。

@Override
public void onTokenRefresh() {

    String refreshedToken = FirebaseInstanceId.getInstance().getToken();

    Log.d(TAG, "Refreshed token: " + refreshedToken);

    sendRegistrationToServer(refreshedToken);
}

和Manifest.xml

<?xml version="1.0" encoding="utf-8"?>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service
        android:name=".FireBaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
    <service
        android:name=".FirebaseInstanceIDService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/default_notification_channel_id"/>
</application>

請有人幫我..

請確保您的設備已連接到互聯網。 生成令牌可能需要幾秒鍾,因此在應用程序啟動后不要立即檢查令牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM