【发布时间】:2016-04-05 09:29:19
【问题描述】:
我是 Android 应用程序开发的新手,想知道是否有人可以帮助我解决问题。
我正在创建一个如下形式的小部件 [ 文本视图 ] [ + ] [ - ]
文本视图显示一个数字,按 + 按钮增加,按 - 按钮减少。
加号和减号按钮与我的服务器交互,该服务器发回一个显示在文本视图中的计数值。
这个小部件可以安装在多部安卓手机上,并且在任何时候计数都应该是最新的。
为了实现这一点,我集成了 Google Cloud 消息传递,以向所有注册的小部件发送带有计数值的推送通知。
当小部件安装在不同的手机上时,一切正常。
但是,如果我在同一部手机上安装两个小部件,我从 Google 收到的令牌是相同的。附上相关代码
try {
tokenPerWidgetId.put(appWidgetId, instanceId.getToken(getString(R.string.gcm_defaultSenderId),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null));
Log.v("RegisterationToken", registerToken);
} catch (IOException ie) {
Log.v("RegisterationToken", "Failed");
setViewsOnError(views, " Could not register with Google. Please re-install");
}
我理解为什么会发生这种情况,因为根据 Google Docs,getToken 第一次从服务器获取令牌,其他时候返回令牌。
但是,如何根据 AppWidgetId 生成令牌?
【问题讨论】:
标签: android google-cloud-messaging android-widget