0

Я реализую Couchbase lite с моим Android-приложением, и я обнаружил, что лучший способ использовать Couchbase lite sync для pull - использовать GCM, а не непрерывное нажатие. Я прошел через учебник here, а репозиторий того же приложения - here.Работник уведомления в Couchbase Lite для GCM

Как указано в reado, я должен использовать Бинарный рабочий извещения из this repo.

Я понял все, как это работает. А также успешно запустить пример приложения, используя мой собственный шлюз синхронизации. Но не могу получить, как я могу заставить рабочий поток Notification работать для моего приложения.

Это уведомление работника двоичная связывается со шлюзом синхронизации, как это упомянуто здесь: http://www.slideshare.net/droidconae/droidcon-dubai/32

Как я могу сделать это, чтобы работать на моем приложение для Android? И какова фактическая роль, которую он играет, чтобы получить изменения и как он решает, кому нужно отправить запрос синхронизации?

Любая ссылка или руководство было бы очень полезно.

Заранее спасибо.

ответ

0

Как я могу заставить его работать для моего приложения для Android?

Вам в первую очередь необходимо создать проект API Google на консоли разработчика и может следовать guide

Затем измените файл Android.Manifest.xml из вашего Android проекта с необходимыми разрешениями, где он должен выглядеть как это:

<manifest package="com.couchbase.todolite"> // ... 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

<permission android:name="com.couchbase.todolite.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 
<uses-permission android:name="com.couchbase.todolite.permission.C2D_MESSAGE" /> 

<application android:name="com.couchbase.todolite.Application"> // ... 

    /* ... activities ... */ 

    <receiver 
     android:name=".GcmBroadcastReceiver" 
     android:permission="com.google.android.c2dm.permission.SEND" > 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      <category android:name="com.couchbase.todolite" /> 
     </intent-filter> 
    </receiver> 
    <service android:name=".GcmMessageHandler" /> 
</application> 

Следуйте этому guide с точки зрения создания GCM в вашем приложении и долго с Инструк чтобы обрабатывать уведомление о синхронизации на стороне клиента Android.

Вы упомянули:

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

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

+0

Я знаю эту вещь. Все это упоминается в учебнике, упомянутом в вопросе. Как я могу обрабатывать изменения на шлюзе синхронизации с помощью GCM. Бинарный файл службы уведомлений в примере проекта проверяет, есть ли изменения в шлюзе синхронизации и отправляет сообщения на определенные клиентские устройства для запуска синхронизации. Как я могу достичь этого в шлюзе синхронизации с моим собственным бинарником уведомлений, который обрабатывает то, что происходит в шлюзе синхронизации? – kirtan403

+1

Сообщение было опубликовано до выпуска версии 1.1. С тех пор доступная функция webhook делает это проще (http://blog.couchbase.com/sync-gateway-webhooks). Я бы использовал это вместо прослушивания в фиде изменений. Во-вторых, вы можете использовать что-то вроде node-gcm (https://github.com/ToothlessGear/node-gcm), чтобы собрать сервер NodeJS (возможно, используя Express) для получения полезной нагрузки webhook и отправки уведомления. – jamiltz