因为几天我一直在努力解决不从Android发送推送的问题。
这是我的代码:
ParsePush push = new ParsePush();
push.setChannel("ch" + GlobalData.sUserSend.getObjectId());
JSONObject data = new JSONObject();
try {
data.put("alert", ParseUser.getCurrentUser().getUsername() + " has sent you gesture!");
data.put("badge", "1");
data.put("sound", "default");
data.put("user_id", ParseUser.getCurrentUser().getObjectId());
} catch (Exception ex) {
}
push.setData(data);
push.sendInBackground(new SendCallback() {
@Override
public void done(ParseException e) {
if (mLoadingDialogFragment != null) {
mLoadingDialogFragment.dismiss();
}
finish();
startActivity(new Intent(SendGestureActivity.this, ConversationActivity.class));
}
});
此应用程序的iOS版本正常运行。我可以接受Android和iOS上的推送。当我签入解析控制台(推送选项卡)时,只有从iOS发送的推送。回调中的ParseException为null。我正在使用Parse 1.9.0,很可能是因为更新停止了工作。任何解决方案?
编辑:在android logcat中我有这个: 04-08 19:28:09.299 1093-1797 / pl.essentialapps.five V / com.parse.ParseRequest:请求失败。在尝试#2之前等待3028毫秒 04-08 19:28:12.549 1093-1890 / pl.essentialapps.five V / com.parse.ParseRequest:请求失败。在尝试#3之前等待6056毫秒 04-08 19:28:18.834 1093-2116 / pl.essentialapps.five V / com.parse.ParseRequest:请求失败。在尝试#4之前等待12112毫秒 04-08 19:28:31.164 1093-2230 / pl.essentialapps.five V / com.parse.ParseRequest:请求失败。放弃。
EDIT2: 我试过几种方式发送推送:
addChannel(如上所述) - 失败
安装查询,其中whereContains我的频道 - 失败
安装查询 - 首先按ID查询用户,下次按用户安装 - 工作
addChannels - 带有一个项目的arraylist - 带有我的频道名称的字符串 - 失败
所以看起来通道不起作用,但我已正确设置它们。每个安装都有:[“global”,“chagk0Mgz3LQ”] - 第二个是“ch”+ user_id