在準備討論Xamarin.Android 如何整合GCM與Windows Azure來實作Push Notification之前,
先來了解如何將Xamarin.Android 與Windows Azure做結合,將Android APP上的資料丟到雲端去儲存。
1. 在Windows Azure上建立一個Mobile Service。
首先到Windows Azure上去建立一個Mobile Service。這邊我建立了一個for Android的Mobile Service。
2. 在Mobile Service上面新增一個item資料庫
2.1 接下來我們要在剛剛建立的Mobile Service上面建立一個儲存資料的Table。
這裡可以使用Windows Azure上的範本,點選到Azure上的Android,選擇底下的
[CONNECT AN EXISTING ANDROIP APP]。
2.2 在展開的網頁裡面會看到一個選項,[Create Item table],
點這個綠色的按鈕Windows Azure會幫我們在雲端上面建立一個資料庫。到目前為止在Windows Azure上的準備已經完成了。
2.3 新增完成後,可以在Windows Azure上面看到我們新增出來的Table,這個Table裡面有兩個欄位,分別是
id還有Text。
3. 下載安裝Azure Mobile Service
在Xamarin網站上下載MobileService元件,將檔案下載到你的電腦端後,解開壓縮。
,後續要在我們的Android專案中引用MobileService檔案裡面的
Microsoft.WindowsAzure.MobileService.Android.dll檔案。
http://components.xamarin.com/view/azure-mobile-services/
4. 撰寫程式將資料寫進item Table
4.1 開啓Visual Studio 2012,去新增一個Android專案。
4.2 把剛剛下載MobileService元件裡面的Microsoft.WindowsAzure.MobileServices.Android.dll元件加入參考。
4.3 在專案裡點MainActivity.cs檔案兩下,開啓編輯畫面,這邊建立一個Item Class。這個是稍後要用來儲存檔案到Windows Azure的對應類別。
public class Item { public int Id; public String Text; }
4.4 接著在OnCreate事件中,我們建立以下程式。
//MobileService主要是用來連接到你的Windows Azure。連接的url可以在Windows Azure上的
// [CONNECT AN EXISTING ANDROIP APP]頁面裡找到你的URL網址。
mClient = new MobileServiceClient( "https://benlutodolistforandroid.azure-mobile.net/", "KRyAYJbLgxMDaKHdLaeIh88" ); //建立一個Item的物件實體,然後儲存你要儲存的資料到item物件的Text屬性。 Item item = new Item(); item.Text = "Awesome";
//呼叫mClient.GetTable方法來取得Table,並且指定型別為Item。接著同步資料到Windows Azure。 var test = mClient.GetTable<Item>(); test.InsertAsync (item);
5. 編譯執行程式。
因為我們把寫入Windows Azure的程式寫在Oncreate事件裡面,所以當這隻APP被載入執行後,
就會觸發同步資料庫的事件。
6. 瀏覽到Windows Azure上的資料庫可以看到資料已經被寫入到裡Mobile Service下的item table。