Статьи

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

Push-уведомления Android  — это сервис, используемый для отправки сообщений непосредственно на смартфоны Android. Используя этот сервис, разработчики могут отправлять данные в  приложения Android,  как только они станут доступны, таким образом, приложение Android не должно отправлять запросы на сервер, чтобы узнать, доступна ли новая информация.

Используя   сервис Android Push , приложения могут сэкономить заряд аккумулятора смартфона и снизить сетевой трафик: улучшается и пользовательский интерфейс. 

Есть несколько различных методов, которые можно использовать для реализации  push-уведомлений Android , стандартным способом является использование  GCM (Google Cloud Messaging),  но есть несколько очень интересных альтернатив, таких как  Parse.com , которые проще в использовании.

Parse.Com настроить проект

Первым делом создайте  учетную запись Parse  и настройте новое приложение. Это очень легко. Как только вы все сделали, пришло время создать новый проект в Android Studio и изменить  build.grade его, добавив в него библиотеку разбора: 

dependencies {
    ...
    compile 'com.parse.bolts:bolts-android:1.2.1'
    compile 'com.parse:parse-android:1.10.1'
}

Теперь вы можете следовать  руководству, предоставленному Parse.com . В нашем случае мы создали приложение  ParseTutorialApplication , расширяющее  приложение,  и оно используется для настройки соединения Parse:

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% 2B2015-09-08% 2Balle% 2B22.20.20

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

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

Пожалуйста, убедитесь, что эмулятор включает Google API.

Parse.Com Custom Receiver

Теперь пришло время настроить приемник так, чтобы мы могли поддерживать пользовательские сообщения, а не только текстовые сообщения. Настраивая приемник, можно реализовать логику приложения, такую ​​как анализ входящего сообщения, отображение пользовательских сообщений и так далее. Оглядываясь назад в Manifest.xml, в качестве  приемника вещания  использовался стандартный приемник com.parse.ParsePushBroadcastReceiver, теперь для настройки его поведения мы можем создать его подкласс:

public class JSONCustomReceiver extends ParsePushBroadcastReceiver {
    @Override
    protected void onPushReceive(Context context, Intent intent) {
        .....
    }
}

и переопределить onPushReceiver, чтобы можно было реализовать логику приложения, когда сообщение доступно. Предположим, что сообщение имеет формат JSON, например:

{"message":"hello phone"}

В  onPushReceiver, приложение анализирует сообщение: 

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

// 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-уведомления: 

// Add custom intent
Intent cIntent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, 
                              cIntent, PendingIntent.FLAG_UPDATE_CURRENT);

и, наконец, приложение уведомляет сообщение:

nm.notify(1410, notification);

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

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