我正在寻找有效使用PubNub和GCM的一些说明。我已根据this PubNub guide中的说明设置了我的应用,并且它正在100%工作。但是我现在需要将自己的代码插入到这个东西中,我想知道是否有一个明确的方法来实现我想要的东西。
我现在的想法是完全依靠GCM推送来携带我的有效载荷数据,因为发送它两次是多余的。然后只会调用订阅来加入他们将接收推送的频道。接收器的onReceive将检查isAppInBackground,如果是,则调用sendNotification。这样做有问题吗?
目前通过PubNub向频道发送信息的方式如下:
private void sendThatJSONInfo(String channelID){
JSONObject jason = new JSONObject();
try {
jason.put("data1", aString);
jason.put("data2", anotherString);
jason.put("fromWho", username);
} catch (JSONException e) {
e.printStackTrace();
}
pN.publish(channelID, jason, new Callback() {
});
}
要将GCM 发送到同一频道,我的代码是这样的:
public void sendNotification(View view) {
PnGcmMessage gcmMessage = new PnGcmMessage();
JSONObject jso = new JSONObject();
try {
jso.put("data1", aString);
jso.put("data2", anotherString);
jso.put("fromWho", username);
} catch (JSONException e) {
e.printStackTrace();
}
gcmMessage.setData(jso);
PnMessage message = new PnMessage(
pubnub,
CHANNEL,
callback,
gcmMessage);
try {
message.publish();
} catch (PubnubException e) {
e.printStackTrace();
}
}
我希望我的问题很明确。我已经浓缩并重复了下面的内容:
答案 0 :(得分:0)
您可以创建PnGcmMessage
并将其添加到您发布的PnMessage
。我更喜欢使用原始JSObject
并在没有辅助方法的情况下自己创建所有内容,但这种技术对您来说更容易。另外,请阅读Publishing to GCM with Java docs?
您可以选择忽略发送推送消息的特殊方法,而忽略add pn_gcm
content to the message payload in the publish。
此示例Sending and Receiving Android Push Notifications w/ GCM应提供您需要的详细信息。