从客户端推送通知

时间:2015-12-18 21:22:03

标签: java android parse-platform notifications

我正在测试推送通知,以便当我按下应用程序上的按钮时,安装了相同应用程序的所有其他人都会收到推送通知。发送通知的人不会获得任何通知。

我一直在寻找类似的查询,但无法让它工作。就推送本身而言,我的日志显示"解析推送已发送"。但我没有收到任何物理设备和模拟器的通知。

请注意,我正在使用 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();
    }
}

1 个答案:

答案 0 :(得分:0)

在您的代码中

pushQuery.whereNotEqualTo("user", ParseUser.getCurrentUser());
pushQuery.whereEqualTo("user", ParseUser.getCurrentUser());

这两行是不兼容的,你应该删除" whereEqualTo"线。

你可以做的另一件事就是回调:

 ...
public void done(ParseException e){
            if(e!=null)
                e.printStackTrace();
...
}

检查是否有错误