如何在Android中将推送通知从一个设备发送到另一个多设备?

时间:2016-07-13 12:24:30

标签: android google-cloud-messaging

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

2 个答案:

答案 0 :(得分: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());

答案 1 :(得分:0)

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

Device1&gt; App Server&gt;设备2 /设备3 / Device4 ...

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