Отправка сообщений (уведомление) группе – Android

Я пишу приложение для Android, в котором мне нужно отправить уведомление группе пользователей.

У меня есть две группы пользователей в базе данных. Если пользователь нажимает кнопку «Уведомлять группу 1» в приложении Android, мне нужно отправить уведомление всем пользователям группы 1. Как я реализую эту логику? Я думаю, что та же логика используется в групповом чате.

Можете ли вы предоставить мне пример кода для андроида и сервера?

Спасибо .. Zacharia

Использование Android Cloud to Device Messaging – лучший подход, так как вы можете легко интегрировать его с MySQL и PhP, имея необходимые инструменты для отправки сообщений через Интернет.

Вы можете группировать пользователей в соответствии с вашими потребностями:

CREATE TABLE IF NOT EXISTS `gcm_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `gcm_regid` text, `name` varchar(50) NOT NULL, `email` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

Источник – AndroidHive

Здесь у вас типичный пример с классом Java, который отправляет сообщение через Интернет с облаком Google :

 public class MessageUtil { private final static String AUTH = "authentication"; private static final String UPDATE_CLIENT_AUTH = "Update-Client-Auth"; public static final String PARAM_REGISTRATION_ID = "registration_id"; public static final String PARAM_DELAY_WHILE_IDLE = "delay_while_idle"; public static final String PARAM_COLLAPSE_KEY = "collapse_key"; private static final String UTF8 = "UTF-8"; public static int sendMessage(String auth_token, String registrationId, String message) throws IOException { StringBuilder postDataBuilder = new StringBuilder(); postDataBuilder.append(PARAM_REGISTRATION_ID).append("=") .append(registrationId); postDataBuilder.append("&").append(PARAM_COLLAPSE_KEY).append("=") .append("0"); postDataBuilder.append("&").append("data.payload").append("=") .append(URLEncoder.encode(message, UTF8)); byte[] postData = postDataBuilder.toString().getBytes(UTF8); // Hit the dm URL. URL url = new URL("https://android.clients.google.com/c2dm/send"); HttpsURLConnection .setDefaultHostnameVerifier(new CustomizedHostnameVerifier()); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setUseCaches(false); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); conn.setRequestProperty("Content-Length", Integer.toString(postData.length)); conn.setRequestProperty("Authorization", "GoogleLogin auth=" + auth_token); OutputStream out = conn.getOutputStream(); out.write(postData); out.close(); int responseCode = conn.getResponseCode(); return responseCode; } private static class CustomizedHostnameVerifier implements HostnameVerifier { public boolean verify(String hostname, SSLSession session) { return true; } } } 

Чтобы его завершить, вы можете интегрировать свой запрос с помощью MySQL с PhP для достижения того, чего хотите. Здесь у вас есть серверная сторона с примером PhP :

 send_message.php <?php if (isset($_GET["regId"]) && isset($_GET["message"])) { $regId = $_GET["regId"]; $message = $_GET["message"]; include_once './GCM.php'; $gcm = new GCM(); $registatoin_ids = array($regId); $message = array("price" => $message); $result = $gcm->send_notification($registatoin_ids, $message); echo $result; } ?> 

Здесь вы найдете несколько дополнительных примеров, которые могут возникнуть в руке, включая логику системы:

  • Пример обмена облачными сообщениями Google
  • Уведомления Android Push с помощью Google Cloud Messaging GCM – пример Android
  • Простой учебник Google Cloud Messaging для Android (GCM)
  • Google Cloud Messaging GCM для Android и Push-уведомления

Принимая отсюда вы можете получить свое приложение с функциями, которые вы имеете в виду.