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