這件事情讓我研究了一段時間,因為官方有兩個方案:一個是用REST Api 來同步Android專案,這個稍微有點複雜,我也嘗試寫了幾個Demo但是效果感覺不好,因為他沒辦法自己設定登陸畫面(Login),官方會直接將App轉入他們自己的畫面(這有點類似WebView的感覺),所以感覺醜醜的....
以下是官方的QickStart的GitHub連結: 大家可以參考一下
https://github.com/OfficeDev/Outlook-SDK-Android
畫面截圖:
以上就是他的登陸畫面,如果這麼多東西放在一個小小的手機裡頭,用戶應該會摔手機...或這刪除程式 .....
所以接下來我要介紹第二個方案, EWS for Android
在網路上都會看到這個:
https://github.com/OfficeDev/ews-java-api
但 Android Studio無法運行這個第三方Lib,這只是For Java only的Lib,我建議大家可以在裡頭的wiki 看如何調用它的Api方式,等等會介紹我上網找到的Lib並且已經成功放置功能在專案裡頭了!
PS:如果有人有其他更好的意見或者Third party Library歡迎提供留言呦!
正文:
首先先找到這個Git專案:
https://github.com/vanan08/AndroidExchange-EWS-
並運行裡頭的TestEWS,如果一切都在預料之中,在App填入帳號密碼並且填入標題,就可以實作完成了。
看到這裡有沒有很簡單?接下來只要參考這個專案,在參加所需要的功能後就大功告成了!
詳情請參考:
https://github.com/OfficeDev/ews-java-api/wiki
接下來我會稍微簡單的介紹一下如何使用這個Liberary來騙騙字數,其實以下的內容的都包含在wiki。
- 第一步:匯入專案
首先先將"eWSForAndroid" 複製貼上到專案裡頭,接著你會發現在Android Studio會找不到這個專案,這個時候不要驚慌。
- 進入Gradle Scripts / setting.gradle 增加 include ':eWSForAndroid'
include ':app' include ':eWSForAndroid'
- 接下來進入 Gradle Scripts / build.gradle 匯入專案 :
compile project(':eWSForAndroid')
程式碼如下:
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "ching.outlook" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile project(':eWSForAndroid') }
- 進入MainActivty,最後在把根據官方提供的Api寫進去就大功告成了:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); ExchangeCredentials credentials = new WebCredentials("book887118@outlook.com", "Aa7874747474"); //輸入自己的帳號密碼 service.setCredentials(credentials); try { service.autodiscoverUrl("book887118@outlook.com"); /輸入自己的帳號 } catch (Exception e) { e.printStackTrace(); }
設定service 就可利用EWS api來實現想要實現的功能呦!
PS:如果有不會,或者是有更正的地方歡迎在底下留言^^
附上專案源碼:https://github.com/book87118/Android_Googlecalendar_Outlookcalender_Sync