2015-09-24 3 views
0

Я создаю приложение чата (вроде watsapp) в Android.Обнаружение Push-уведомлений Android

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

Итак, как я могу код моего файла манифеста, чтобы всякий раз, когда есть новое сообщение с сервера, оно будет автоматически обнаруживаться в моих приемниках вещания.?

+2

Ты вопрос означает огромный недостаток поиска ... – shkschneider

+0

сожаления по поводу этого, но я не являюсь способный найти правильный путь –

+0

Зачем вам избегать GCM? Как вы будете отправлять push-уведомления? Как вы их принимаете в своем Android-приложении? У вас должны быть некоторые ссылки об этом ... – shkschneider

ответ

0

Первое, что вам нужно - это хорошая причина не использовать GCM. Если вы уверены, что хотите свой собственный сервис, вам придется написать много кода на стороне клиента и на стороне сервера. Вот общая идея:

  1. Зарегистрировать широковещательный приемник, чтобы узнать, когда устройство подключено или нет в сети.

  2. Создайте услугу, которая будет запущена и остановлена ​​широковещательным приемником в соответствии с состоянием сети устройства.

  3. Выберите шаблон для «push». Вы можете использовать классический HTTP-запрос с длинным опросом или сокеты для реального нажатия. Это link представляет концепцию (для использования в Интернете).

  4. Внедрите этот шаблон, чтобы вы могли общаться с вашим сервером.

  5. Сделайте свою услугу трансляцией, так что остальное приложение может получить push.

0

Я согласен с другими в этом вопросе. Вы должны использовать GCM, даже если это означает добавление собственного пользовательского кода на стороне сервера.

Вот что мой приемник вещания выглядел как тестовое приложение для уведомлений о push-методе GCM.

public class GCMBroadcastReceiver extends WakefulBroadcastReceiver { 
    public static final String TAG = "GCMBroadcastReceiver_"; 
    @Override 
    public void onReceive(Context context, Intent intent){ 
     Log.v(TAG, "OnReceive was called."); 
     ComponentName comp = new ComponentName(context.getPackageName(), 
       GCMNotificationIntentService.class.getName()); 
     startWakefulService(context, (intent.setComponent(comp))); 
     setResultCode(Activity.RESULT_OK); 
    } 
} 

В службе намерений (GCMNotificationIntentService) вы создаете фактическое уведомление.

Вот пример я отработка:

https://github.com/kweaver00/android-learning/tree/master/Push

https://github.com/kweaver00/android-learning/blob/master/Push/GCMExample/app/src/main/java/com/expeditionlabs/gcmexample/lib/gcm/GCMBroadcastReceiver.java