来自客户端的推送通知

Push Notification from client

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

我一直在寻找类似的查询,但无法使其正常工作。就推送本身而言,我的日志显示 "Parse push is sent"。但是我没有在我的任何物理设备或模拟器上收到任何通知。

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

在你的代码中

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

这两行不兼容,您应该删除 "whereEqualTo" 行。

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

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

检查是否有错误