0

我正在实施Couchbase lite与我的Android应用程序,并且我发现使用Couchbase lite同步进行pull的更好方式是使用GCM,而不是持续拉动。我正在阅读教程here,同一应用的回购是hereCouchbase Lite中的通知工作者适用于GCM

正如在回购的自述文件中提到的,我需要使用回购的通知工作人员二进制

我想出了它的所有工作原理。还可以使用我自己的同步网关成功运行示例应用程序。但无法获得如何让通知工作线程为我的应用程序工作。

该通知工人的二进制,同步网关通信,因为它提到这里:http://www.slideshare.net/droidconae/droidcon-dubai/32

我怎样才能使它为我的Android应用程序工作吗?它发挥什么样的作用来获取更改以及它如何决定向谁发送同步请求?

任何参考或指导将是非常有益的。

在此先感谢。

回答

0

我该如何让它为我的android应用程序工作?

您首先需要创建开发者控制台上的谷歌API项目,可以按照guide

然后从你的Android项目修改Android.Manifest.xml文件所要求的权限,它应该看像这样:

<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> 

在你的应用程序中设置GCM方面按照此guide和长着instruc tions来处理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