Push-уведомления Android — это сервис, используемый для отправки сообщений непосредственно на смартфоны Android. Используя этот сервис, разработчики могут отправлять данные в приложения Android, как только они станут доступны, таким образом, приложение Android не должно отправлять запросы на сервер, чтобы узнать, доступна ли новая информация.
Используя сервис Android Push , приложения могут сэкономить заряд аккумулятора смартфона и снизить сетевой трафик: улучшается и пользовательский интерфейс.
Есть несколько различных методов, которые можно использовать для реализации push-уведомлений Android , стандартным способом является использование GCM (Google Cloud Messaging), но есть несколько очень интересных альтернатив, таких как Parse.com , которые проще в использовании.
Parse настроил проект
Первым делом создайте учетную запись Parse и настройте новое приложение. Это очень легко. После того, как вы все сделали, пришло время создать новый проект в Android Studio и изменить build.grade включив в него библиотеку разбора:
|
1
2
3
4
5
|
dependencies { ... compile 'com.parse.bolts:bolts-android:1.2.1' compile 'com.parse:parse-android:1.10.1'} |
Теперь вы можете следовать руководству, предоставленному Parse.com . В нашем случае мы создали приложение ParseTutorialApplication которое расширяет приложение и используется для настройки соединения Parse:
|
01
02
03
04
05
06
07
08
09
10
|
public class ParseTutorialApplication extends Application { @Override public void onCreate() { super.onCreate(); System.out.println("Application"); Parse.initialize(this, "your key", "your key"); ParseInstallation.getCurrentInstallation().saveInBackground(); }} |
Теперь вы используете приемник по умолчанию, предоставляемый библиотекой, в следующем параграфе вы увидите, как его настроить.
Если проект настроен правильно, вы можете попробовать отправить push-уведомление через веб-интерфейс:
В эмуляторе Android вы должны получить уведомление:
Пожалуйста, убедитесь, что эмулятор включает Google API.
Разбор пользовательского получателя: данные JSON
Теперь пришло время настроить приемник так, чтобы мы могли поддерживать пользовательские сообщения, а не только текстовые сообщения. Настраивая приемник, можно реализовать логику приложения, такую как анализ входящего сообщения, отображение пользовательских сообщений и так далее. Оглядываясь назад в Manifest.xml, в качестве приемника вещания использовался стандартный приемник com.parse.ParsePushBroadcastReceiver , теперь для настройки его поведения мы можем создать его подкласс:
|
1
2
3
4
5
6
|
public class JSONCustomReceiver extends ParsePushBroadcastReceiver { @Override protected void onPushReceive(Context context, Intent intent) { ..... }} |
и переопределить onPushReceiver чтобы можно было реализовать логику приложения, когда сообщение доступно. Предположим, что сообщение имеет формат JSON, например:
|
1
|
{"message":"hello phone"} |
В onPushReceiver приложение анализирует сообщение:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
private String getData(String jsonData) { // Parse JSON Data try { System.out.println("JSON Data ["+jsonData+"]"); JSONObject obj = new JSONObject(jsonData); return obj.getString("message"); } catch(JSONException jse) { jse.printStackTrace(); } return "";} |
Как только содержимое сообщения становится доступным и извлекается из сообщения JSON, приложение уведомляет об этом пользователя, используя NotificationCompat и NotificationManager .
|
1
2
3
4
5
6
7
8
9
|
// Create custom notificationNotificationCompat.Builder builder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.ic_not_alert) .setContentText(data) .setContentTitle("Notification from Parse") .setContentIntent(pendingIntent);Notification notification = builder.build();NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); |
где pendingIntent — это экземпляр Intent, который запускает Activity, когда пользователь касается push-уведомления:
|
1
2
3
4
|
// Add custom intentIntent cIntent = new Intent(context, MainActivity.class);PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, cIntent, PendingIntent.FLAG_UPDATE_CURRENT); |
и, наконец, приложение уведомляет сообщение:
|
1
|
nm.notify(1410, notification); |
Окончательный результат показан на рисунке ниже:
Обратите внимание, что мы также настроили значок уведомления.
В конце этого поста вы знаете, как отправить push-сообщение для Android с помощью Parse.com, в следующих статьях вы узнаете, как использовать push-уведомление для отправки сообщений, генерируемых такими интеллектуальными контроллерами, как Arduino, следите за обновлениями!
| Ссылка: | Push-уведомление для Android с помощью Parse от нашего партнера JCG Франческо Аццолы в блоге Surviving с Android . |


