【问题标题】:How to send push notification from one device to another multiple device in android?如何在android中将推送通知从一台设备发送到另一台多台设备?
【发布时间】:2016-07-13 12:24:29
【问题描述】:

任何人都知道如何将推送通知从一台设备发送到多台设备。我创建示例应用程序。注册推送通知并使用代码获取令牌。我编写用于发送推送通知的 php 代码我在我的设备上收到通知。但是如何将推送通知从设备发送到另一个多个设备。

【问题讨论】:

  • 不可能。你需要通过你的服务器来管理它

标签: android google-cloud-messaging


【解决方案1】:

是的,这是可能的。

服务器是强制实现的。

从服务器获取所有设备注册 ID,然后向所有设备发送推送通知。

regID 是设备 GCM 注册密钥

使用循环并更改 regID。希望对你有帮助...

对于纯数据:

            client = new DefaultHttpClient();
            httpPost = new HttpPost(SEND_URL);
            httpPost.setHeader("Authorization", "key=" + KEY);
            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
            nvPair = new ArrayList<NameValuePair>();
            nvPair.add(new BasicNameValuePair("registration_id", regID));
            nvPair.add(new BasicNameValuePair("data1", "Push Notifications"));
            nvPair.add(new BasicNameValuePair("data2", "testting from another device"));
            httpPost.setEntity(new UrlEncodedFormEntity(nvPair));
            res = client.execute(httpPost, new BasicResponseHandler());

对于 Json 数据:

            client = new DefaultHttpClient();
            httpPost = new HttpPost(SEND_URL);
            httpPost.setHeader("Authorization", "key=" + KEY);
            httpPost.setHeader("Content-Type", "application/json");
            obj = new JSONObject();
            obj.put("to", regID);
            innerObj = new JSONObject();
            innerObj.put("title", "Push Notification Title");
            innerObj.put("text", "Message");
            obj.put("notification", innerObj);
            httpPost.setEntity(new StringEntity(obj.toString()));
            Log.e("input", obj.toString() + " >>>end");
            res = client.execute(httpPost, new BasicResponseHandler());

【讨论】:

  • 拜托,你能正确解释一下我没听懂吗。
  • 设备成功注册到 GCM 后,每台设备都会收到 REGISTRATION_ID,REGISTRATION_ID 和用户名会被发送到服务器存储 db。使用这些注册 ID 推送通知将由服务器发送到 GCM 服务器。然后 GCM 服务器将向设备发送推送通知。它的推送通知流程...
  • 服务器拥有所有设备 REGISTRATION_ID 获取这些 ID 并使用我的代码。然后服务器将向您的设备发送通知到 GCM 服务器,然后 GCM 服务器将向设备发送通知。
  • 虽然这可行,但不推荐。这种方法会使您的应用程序不安全,因为任何有权访问您的 API 密钥(可以从您的 APK 中提取)的人都可以向您的应用程序发送消息。
【解决方案2】:

不,无法从一台设备向另一台(或多台)设备发送推送通知(GCM 消息)。您应该使用您的应用程序服务器作为中继。

Device1 > 应用服务器 > Device2/Device3/Device4...

您应该在您的 Android 应用中包含用于发送 FCM 消息的服务器 API 密钥。该密钥应该是秘密的,如果从您的 APK 中提取,任何人都可以向您的应用程序发送消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多