android 集成全部分享平臺

注意: 本文介紹的是Share SDK 2.x版本的集成流程和注意事項,對於Share SDK 1.x版本的開發者,請參考2.0升級指南升級SDK之後,再閱讀本文php

目錄

 [隱藏

1  第一步 :獲取Share SDK

爲了集成Share SDK,您首先須要到Share SDK官方網站註冊而且建立應用,得到ShareSDK的Appkey,而後到SDK的下載頁面下載SDK的壓縮包,解壓之後能夠獲得以下圖的目錄結構: wiki and fi 1.pnghtml

2  第二步:導入Share SDK

Share SDK有兩種集成方式:一、直接複製jar包到目標項目libs目錄;二、項目引用。Sample用的是第一種方式 若是使用複製jar的方法,須要除了複製MainLibs/libs中的jar外,還須要複製MainLibs/res中圖片和strings,不然會出現受權時找不到資源的問題。並且若是您的項目也集成了快捷分享,還須要複製OneKeyShare/src中的源碼、OneKeyShare/res中的資源和OneKeyShare/libs下的android-support-v4的jar到您的項目中。對於直接複製jar和資源的方式,能夠參考Share SDK的Sample項目。 因爲直接複製jar包和資源的集成方式比較麻煩,Share SDK提供了快速集成的程序,在Windows下能夠直接雙擊執行。這個程序會自動蒐集集成SDK所須要的jar和資源,完成之後能夠經過複製目標目錄中的文件到您項目中覆蓋,再修改快捷分享項目中對源碼文件對R文件的引用就好了。極大簡化了「直接複製jar和資源」這種集成方式的操做步驟。 wiki and fi 15.png 下面演示如何經過項目引用的方式集成Share SDK: 1)將Share SDK下的Libs目錄解壓,而後在Eclipse中,選擇「文件」—「導入」,並選擇「現有的工做空間」: wiki and fi 3.png 並在「下一步」的頁面中,選擇上文解壓的Libs目錄: wiki and fi 4.png 點擊「肯定」,Eclipse會自動找到Libs目錄下的兩個項目: wiki and fi 5.png 若是您不須要快捷分享功能,能夠取消OneKeyhare項目的勾選,不然請按「肯定」,導入項目。 2)被導入的兩個項目默認是「Is Labrary」的,並且OneKeyhare也默認引用了MainLibs,因此您並不須要爲這兩個項目作更多的設置。可是若是您修改了它們的相對路徑,使之不在同一目錄下,則須要手動修改其引用方式。具體操做和下面步驟相似。 3)右鍵您的項目,選擇「屬性」。在彈出的窗口左側選擇「Android」,而後轉至右下側的「Library」中點擊「Add」,分別選擇「MainLibs」和「OneKeyhare」,而後保存設置,退出屬性窗口。 wiki and fi 6.png 完成上述步驟,「刷新」並「清理」一下您的項目,若未提示錯誤,ShareSDK已經導入到您的項目中。若是控制檯報錯,應該是support-v4的jar重複的問題,刪除你項目中的support-v4就行,接下來就是配置不一樣平臺的應用信息和註冊受權以及快捷分享的Activity了。 對於1.2.0之前已經集成Share SDK,如今要升級的開發者,能夠參考「複製jar和資源文件」的方式來升級SDK,也能夠將您libs中對Share SDK所引用的jar刪除,而後依照上述的步驟從新引用。因爲Share SDK 2.0並不兼容1.x的版本,所以會有一些代碼須要改動。主要的修改原則是將全部包含「Weibo」名稱的字段和方法,以「Platform」來替換;AbstractWeibo被拆分爲兩個,對於Share SDK而言的靜態方法被分配到類ShareSDK中,其餘的和具體平臺操做有關的成員,被分配到類Platform中。更多的詳細內容,能夠參考咱們Wiki上的2.0升級指南。 Share SDK的快捷分享只提供源碼,並無編譯好的jar。MainLibs的libs目錄中包含的是Share SDK的核心類庫,不一樣的jar對應不一樣的平臺,其對應關係能夠參考後文的平臺對應列表。對於大部分的開發者,這些平臺並不都是須要的,這時候能夠直接刪除此目錄下不須要平臺的jar包便可,直到後續需求變動,須要添加新的平臺,再複製新平臺的jar到此目錄下就好了。java

3  第三步:添加應用信息

Share SDK有不一樣的應用信息配置方式。您能夠在Share SDK的應用管理後臺中配置,或者經過「assets/ShareSDK.conf」文件來配置,或者經過「ShareSDK.setXXXXXDevInfo」方法組來設置。開發者能夠自行選擇,不過這三種設置方式各有區別:第一種方式優先級別最高,能夠實現「動態配置應用信息」的功能,可是一旦脫離網絡,Share SDK可能沒法運做;第二種方式是優先級最低的方式,可是它最爲方便、集中;最後使用代碼設置的方式是最靈活的方式,開發者能夠在代碼裏面寫死應用信息,也能夠經過私有協議,從本身的服務器上動態獲取應用信息,其優先級居第一種和第二種之間。下面介紹一下如何使用「assets/ShareSDK.conf」配置您項目的應用信息列表。 獲取信息之後,將這些信息都存放在您項目的「assets/ShareSDK.conf」中。請到「Res」中將ShareSDK.conf複製到您項目的「assets」下,打開文件,而後根據不一樣的平臺的數據,以下面的例子所示,替換您在這個平臺上的開發者信息:node

<ShareSDK    AppKey="填寫您在Share SDK上註冊到的AppKey" />
<SinaWeibo    SortId="此平臺在您分享列表中的位置,整型,數值越大越靠後"    AppKey="填寫您在新浪微博上註冊到的AppKey"    AppSecret="填寫您在新浪微博上註冊到的AppSecret"    Id="自定義字段,整型,用於您項目中對此平臺的識別符"    RedirectUrl="填寫您在新浪微博上註冊的RedirectUrl"    ShortLinkConversationEnable="布爾值,標記是否做短鏈轉換"    Enable="布爾值,標記此平臺是否有效" />

ShareSDK.conf以XML格式存儲數據,每個平臺一個塊,除了社交平臺外,開發者在Share SDK註冊應用時獲得的Appkey須要填寫在塊「ShareSDK」中,若是此Appkey不是開發者本身的Appkey,則未來在Share SDK應用後臺的統計數據將不正確。Share SDK的每個平臺都具有SortId、Id、ShortLinkConversationEnable和Enable四個字段,除此以外的字段(如新浪微博的AppKey、AppSecret、RedirectUrl等字段)須要到目標平臺上註冊應用之後獲得,請正確填寫這些字段的數據,不然Share SDK沒法完成受權,則後續的其它操做也將沒法執行。關於應用信息不一樣字段的更詳細解釋,能夠參考ShareSDK.conf文件頭部的說明。 android

4  第四步:配置AndroidManifest.xml

不一樣的集成度須要在AndroidManifest.xml中添加的內容不同。可是首先您須要添加下面的權限列表: api

<uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.GET_ACCOUNTS"/>

這些權限將容許您的項目和Share SDK判斷當前應用是否「前置」、獲取鏈接網絡的權限、獲取您的設備網絡狀態的權限、實現https安全鏈接的權限、讀取手機設備狀態的權限和保存必要配置的權限。通常來講,即使不集成Share SDK,大部分的項目也都會註冊申請這些權限。 其次,爲了受權操做能夠順利完成,須要在application下注冊下面的Activity: 安全

<activity    android:name="cn.sharesdk.framework.ShareSDKUIShell"    android:theme="@android:style/Theme.Translucent.NoTitleBar"    android:configChanges="keyboardHidden|orientation|screenSize"    android:screenOrientation="portrait"    android:windowSoftInputMode="stateHidden|adjustResize" />

ShareSDKUIShell的路徑是固定的,必定要在「cn.sharesdk.framework」下,由於它在Share-Core中。 最後,若是您的項目集微信或者微信朋友圈,則須要在application下注冊下面的回調Activity: 服務器

<activity    android:name=".wxapi.WXEntryActivity"    android:theme="@android:style/Theme.Translucent.NoTitleBar"    android:configChanges="keyboardHidden|orientation|screenSize"    android:exported="true"    android:screenOrientation="portrait" />

這個類的路徑是須要根據您項目的包名來肯定,通常其路徑是「您的包名. wxapi.WXEntryActivity」。若是路徑錯誤,您將收不到微信客戶端的操做回調,所以Share SDK也沒法給予您操做回調。 微信

5  第五步:添加代碼

集成Share SDK須要至少在兩個地方添加代碼,包括: 1) 打開您項目的入口Activity,在其onCreate中插入下面的代碼: 網絡

ShareSDK. initSDK ( this ) ;

這行代碼會初始化Share SDK,此後對Share SDK的操做都依次爲基礎。若是不在全部Share SDK的操做以前調用這行代碼,會拋出空指針異常。 2)在您項目的出口Activity的onDestroy方法的第一行插入下面的代碼:

ShareSDK. stopSDK ( this ) ;

這行代碼會結束Share SDK的統計功能並釋放資源。若是這行代碼沒有被調用,那麼「應用啓動次數」的統計將不會準確,由於應用可能歷來沒有被關閉。 initSDK是能夠重複調用的,其實Share SDK建議在您不肯定的時候調用這個方法,來保證Share SDK被正確初始化。而stopSDK一旦調用了,就必須從新調用initSDK才能使用Share SDK的功能,不然會出現空指針異常。 至於如何調用受權、獲取資料、分享等操做,請參考後續章節的說明。

6  備註一:微信的註冊和簽名

對於Share SDK的大部分平臺,只要您參考上面的集成步驟引入到您的項目之後就能夠開始進行工做了。可是對於微信的兩個平臺(微信好友和微信朋友圈)卻不行。由於微信開放平臺要求android的第三方開發者須要提供本身項目的包名和簽名。下面簡要敘述添加這些的操做流程: 1)您須要到微信開放平臺上註冊一個開發者帳號,而後利用這個帳號添加一個移動應用。 wiki and fi 7.png wiki and fi 8.png 應用建立出來之後,您會獲得一個AppId,將這個Id添加到assets/ShareSDK.conf中。 wiki and fi 9.png 2)添加Android平臺的信息。這些信息包括:下載地址、應用簽名和包名。 wiki and fi 10.png 上圖中的下載地址不能夠是應用apk文件的直接地址,而報名則是您應用的包名。至於應用簽名,事實上您應用簽名文件(keystore文件)的MD5值。有多種計算方式: (1)使用微信提供的簽名計算工具,來簽名: 若是您但願經過這個方法來計算簽名,則須要下載微信的簽名計算工具。此處須要注意的是下載回來的文件必定是「apk」的,若是您下載回來的文件是zip或者後綴名,請修改其後綴名爲「apk」,並複製到您的手機上安裝。 而後爲您的應用導出一個簽過名的apk。請注意,這個簽名應該是您未來發佈應用時的簽名,也就是所謂的「正式包簽名」。這裏須要解釋一下,微信並不要求具體使用的簽名文件的性質,可是修改簽名常常會致使問題,因此爲了不沒必要要的麻煩,Share SDK強烈建議您使用正式包的簽名。 安裝導出的apk文件,而後運行微信的簽名計算工具。並在其中輸入您應用的包名,微信會自動計算您應用所籤keystore的MD5: wiki and fi 11.png 轉至微信開放平臺,將計算好的結果填寫到其中並保存。 (2)利用Eclipse導出簽名時顯示的簽名MD5值: 利用此方法,要求您下載最新版本的Eclipse Android開發插件(ADT)。確保此條件後,右鍵您的項目,選擇「Android Tools」—「Export Signed Application Package…」: wiki and fi 12.png 此時會彈出一個導出簽名apk的窗口,輸入您應用正式簽名和密碼之後,會在導出頁面中,顯示您簽名的MD5值。將其複製出來,調整爲小寫,並去除多餘的風格符。轉至微信開放平臺,將計算好的結果填寫到其中並保存便可。 wiki and fi 13.png (3)Linux(Ubuntu)下,利用Shell直接計算: 若是您使用Ubuntu操做系統,能夠直接利用下面的Shell命令計算出簽名文件的MD5值: keytool -exportcert -alias <keystore別名> -keypass <別名密碼> -keystore <keystore路徑> -storepass <keystore密碼> | md5sum 如: keytool -exportcert -alias demokey.keystore -keypass 123456 -keystore demokey.keystore -storepass 123456 | md5sum 其實出以下: wiki and fi 14.png 將其複製出來,轉至微信開放平臺,將計算好的結果填寫到其中並保存便可。 完成上述的註冊操做之後,將您的項目提交微信開放平臺審覈,審覈經過之後,您的項目就能夠開始調用微信客戶端進行分享了。分享時,須要利用上文提到的keystore來給您的apk簽名,簽名之後放到您的機器上、安裝,之後才能調用分享。不能直接在Eclipse上run,由於簽名和包名都已經捆綁,若不是註冊時填寫的簽名,微信客戶端將拒絕請求。 爲了演示分享功能Sample包中攜帶了一個"demokey.keystore"的keystore文件,其密碼是「123456」,若是您在調試Sample項目的時候集成了微信的平臺,就須要使用這個keystore對apk進行簽名,以後才能嘗試微信的分享。可是請注意:這個keystore已經和「cn.sharesdk.demo」這個包名捆綁,若是您的項目不使用這個包名,是不能直接使用這個keystore的

7  備註二:平臺對應列表

下面是Share SDK當前所支持平臺及其jar包的對應表[1]

平臺 Jar包
新浪微博 ShareSDK-SinaWeibo.jar
騰訊微博 ShareSDK-TencentWeibo.jar
QQ ShareSDK-QQ.jar
QQ空間 ShareSDK-QZone.jar
微信好友[2] ShareSDK-Wechat.jar
微信朋友圈[2] ShareSDK-Wechat-Moments.jar
Facebook ShareSDK-Facebook.jar
Twitter ShareSDK-Twitter.jar
人人網 ShareSDK-Renren.jar
開心網 ShareSDK-KaiXin.jar
郵件 ShareSDK-Email.jar
信息 ShareSDK-ShortMessage.jar
搜狐微博 ShareSDK-SouhuMicroBlog.jar
網易微博 ShareSDK-NetEaseMicroBlog.jar
豆瓣 ShareSDK-Douban.jar
有道雲筆記 ShareSDK-YouDao.jar
印象筆記 ShareSDK-Evernote.jar
Linkedin ShareSDK-Linkedin.jar
Google+ ShareSDK-GooglePlus.jar
FourSquare ShareSDK-Foursquare.jar
搜狐隨身看 ShareSDK-SohuSuishenkan.jar
Flickr ShareSDK-Flickr.jar
Pinterest ShareSDK-Pinterest.jar
Tumblr ShareSDK-Tumblr.jar
Dropbox ShareSDK-Dropbox.jar
Instagram ShareSDK-Instagram.jar
VKontakte ShareSDK-VKontakte.jar

注: [1] 因爲全部平臺都依賴於ShareSDK-Core.jar,故此表略去每一項中的此包,以避免冗餘 [2] 微信的兩個平臺(微信好友和微信朋友圈)除了依賴ShareSDK-Core.jar外,還依賴ShareSDK-Wechat-Core.jar,使用的時候需注意不要遺漏。

8  備註三:應用信息註冊地址列表

下面是Share SDK不一樣平臺應用信息註冊網站的地址[1]

平臺 網站
新浪微博 http://open.weibo.com
騰訊微博 http://dev.t.qq.com
QQ空間[2] http://connect.qq.com/intro/login/
微信好友[3] http://open.weixin.qq.com
Facebook https://developers.facebook.com
Twitter https://dev.twitter.com
人人網 http://dev.renren.com
開心網 http://open.kaixin001.com
搜狐微博 http://open.t.sohu.com
網易微博 http://open.t.163.com
豆瓣 http://developers.douban.com
有道雲筆記 http://note.youdao.com/open/developguide.html#app
印象筆記 https://dev.evernote.com/
Linkedin https://www.linkedin.com/secure/developer?newapp=
FourSquare https://developer.foursquare.com/
搜狐隨身看 https://open.sohu.com/
Flickr http://www.flickr.com/services/
Pinterest http://developers.pinterest.com/
Tumblr http://www.tumblr.com/developers
Dropbox https://www.dropbox.com/developers
Instagram http://instagram.com/developer#
VKontakte http://vk.com/dev

注: [1] Email、信息和Google+不須要註冊便可使用 [2] QQ客戶端分享和QQ空間使用相同的應用信息配置頁面 [3] 微信好友和微信朋友圈使用相同的註冊信息 

 

 

 

                                                    

                            

來自「 http://wiki.sharesdk.cn/index.php?title=Android_快速集成指南&oldid=1570」                           

 

                                                                            

                            

 

                                                                        

 

 

                                                

                        

 
相關文章
相關標籤/搜索