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 notification NotificationCompat.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 intent Intent 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 . |