小编Irf*_*aza的帖子

发送一个通知后未注册的令牌错误

我在使用Firebase时遇到了Android应用程序的这个戏剧性问题.1.我的应用程序在第一次启动时收到令牌2.我能够从firebase控制台向注册令牌发送通知3.如果我尝试在步骤2之后再次使用控制台发送通知.它向我显示"未注册令牌"在第二次尝试之后.

我已经在清单中存在所有必要的配置,并且google service.json文件也已使用正确的配置.我相信事情是正确的,因为应用程序能够接收一次通知,问题才会在此之后开始.

更新1:如果我卸载应用程序并重新安装它,那么我也只能收到一次通知.

那些想要查看代码的人,这就是我获取令牌的方式:

@Override
public void onTokenRefresh() {

    //Getting registration token
     refreshedToken = FirebaseInstanceId.getInstance().getToken();

    //Displaying token on logcat
    Log.d(TAG, "Refreshed token: " + refreshedToken);
     saveDeviceToken(refreshedToken);
}
Run Code Online (Sandbox Code Playgroud)

这只能在第一次启动时调用,之后,我还没有看到它被调用(我认为这是预期的行为).

收到的OnMessage也会在第一次通知时被调用,然后它永远不会被取消:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    Log.d("FCM", "From: " + remoteMessage.getFrom());

    if (remoteMessage.getNotification() != null) {
        Log.d("FCM", "Notification Message Body: " + remoteMessage.getNotification().getBody());
        sendNotification(remoteMessage.getNotification().getBody());
    }
}
Run Code Online (Sandbox Code Playgroud)

更新2:尝试使用相同的服务器密钥和令牌命中FCM的HTTP api并获得以下响应:

   {
  "multicast_id": 6286279702096230688,
  "success": 0,
  "failure": 1,
  "canonical_ids": 0,
  "results": [
    {
      "error": "NotRegistered"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

为了避免交叉问题,这里有更多细节:

  • Android studio:v2.3.1
  • Google Play服务版:10.0.1 …

notifications android firebase google-cloud-messaging firebase-cloud-messaging

16
推荐指数
1
解决办法
3793
查看次数

Android Studio无法识别Mac/Linux上的OnePlus2

我的Android Studio(1.3.2)无法识别我的手机"OnePlus Two"

我正在使用Mac(OS x Yosemite 10.10.5)和最新的Android SDK.

更新1: 安装在我的Mac"Android文件传输"上的文件传输软件能够在我将手机连接到mac时识别手机.

更新2: 在尝试通过终端查找所有连接的设备时,我甚至没有通过执行命令看到我的设备adb devices

更新3: 我确实试图杀死adb并重新开始,但这也没有用.

PS:我在Developer Option上启用了USB调试

adb android-studio oneplusone

10
推荐指数
1
解决办法
5070
查看次数