Статьи

Android push-уведомление с использованием Parse

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-уведомление через веб-интерфейс:

Schermata 2015-09-08 алле 22.20.20

В эмуляторе Android вы должны получить уведомление:

Устройство-2015-09-01-225504

Пожалуйста, убедитесь, что эмулятор включает 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);

Окончательный результат показан на рисунке ниже:

Устройство-2015-09-06-222013

Обратите внимание, что мы также настроили значок уведомления.

В конце этого поста вы знаете, как отправить push-сообщение для Android с помощью Parse.com, в следующих статьях вы узнаете, как использовать push-уведомление для отправки сообщений, генерируемых такими интеллектуальными контроллерами, как Arduino, следите за обновлениями!

Ссылка: Push-уведомление для Android с помощью Parse от нашего партнера JCG Франческо Аццолы в блоге Surviving с Android .