我正在测试推送通知,以便当我按下应用程序上的按钮时,安装了相同应用程序的所有其他人都会收到推送通知。发送通知的人不会获得任何通知。
我一直在寻找类似的查询,但无法让它工作。就推送本身而言,我的日志显示"解析推送已发送"。但我没有收到任何物理设备和模拟器的通知。
请注意,我正在使用 Parse ,并且设置正确,并且能够从Parse.com网站发送通知。只在尝试从客户端设备发送时遇到问题。
我是否应该为此明确创建频道和用户?我试过但只有选择来创造有条件的观众。
public void sendParse(View view){
try {
// Associate the device with a user
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
installation.put("user", ParseUser.getCurrentUser());
installation.saveInBackground();
ParseQuery pushQuery = ParseInstallation.getQuery();
pushQuery.whereEqualTo("channels", "Everyone");
pushQuery.whereNotEqualTo("user", ParseUser.getCurrentUser());
pushQuery.whereEqualTo("user", ParseUser.getCurrentUser());
ParsePush push = new ParsePush();
push.setQuery(pushQuery);
push.setMessage("Testing 1 2 3...");
push.sendInBackground(new SendCallback() {
@Override
public void done(ParseException e) {
Log.i("zx", "Push is sent!");
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
在您的代码中
pushQuery.whereNotEqualTo("user", ParseUser.getCurrentUser());
pushQuery.whereEqualTo("user", ParseUser.getCurrentUser());
这两行是不兼容的,你应该删除" whereEqualTo"线。
你可以做的另一件事就是回调:
...
public void done(ParseException e){
if(e!=null)
e.printStackTrace();
...
}
检查是否有错误