正在做個android的小應用,有點想嘗試一下社會化分享,比如分享到新浪微博啥的。看一下新浪,人人網的API,說實話功能很全很強大,但雖說有相對的SDK,但是總覺得不方便。因為正在使用友盟的統計SDK,無意間發還有個SNS的SDK,看了一下文檔,感覺不錯哈。
總共需要3個包,Umeng-Android-SDK-SnsService.jar,httpmime-4.1.1.jar和commons-httpclient-3.1.jar。大小分別為63K,27K,298K。感覺有點點大,但是比較一下新浪,人人,騰訊微薄提供的API,其實大小沒差好多,等下我們還可以壓縮一下的嘛。
新建一個文件夾libs,將3個包導入其中,只有3個哈,其他兩個是我這個程序其他功能要使用的。
?
?
在開發工具--SNS分享中 設置相關的Api key和Api Secret,沒有就去申請一
?
然后在Android的配置文件中添加兩個Activity。
?
?
1 <activity android:name="com.umeng.api.activity.OauthActivity" 2 android:configchanges="orientation|keyboardHidden"> 3 </activity>
?
?
?
1 <activity android:name="com.umeng.api.activity.UpdateStatusActivity" android:theme="@style/Theme.IOSched" 2 android:configchanges="orientation|keyboardHidden"> 3 <intent-filter> 4 <action android:name="android.intent.action.VIEW"></action> 5 <category android:name="android.intent.category.DEFAULT"></category> 6 <category android:name="android.intent.category.BROWSABLE"></category> 7 <data android:scheme="schema友盟的應用KEY"></data> 8 </intent-filter> 9 </activity>
?
?
?
?
官方文檔的位置還要多一點點...但是我覺得那些看實際情況了。
那個scheme那里主要是為了區分,應用KEY就是你在友盟注冊的KEY,因為我有用它的統計SDK,所以有KEY,沒有的話去申請一個。
然后添加3個權限,訪問網絡的權限肯定是必須的,還有判斷網絡情況,友盟還要求一個讀取終端IMEI的權限,一共三個。
?
?
1 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"> 2 <uses-permission android:name="android.permission.INTERNET"> 3 <uses-permission android:name="android.permission.READ_PHONE_STATE">
?
?
?
然后是資源文件,下載的SDK有,全部復制到項目里面。
目前友盟的SDK支持3家:新浪微博,騰訊微博,人人網。如果你只想用其中的兩家或者一家可以在umeng_share_strings.xml
中修改
?
1 <string name="umeng_share_renr">open</string> 2 <string name="umeng_share_sina">open</string> 3 <string name="umeng_share_tenc">close</string>
?
?
?
不用的寫成Close就可以了。不過我覺得沒有很大的問題還是3家都要吧,如果只是用1個布局文件有點小瑕疵..看著不順眼。調用的時候也很簡單
?
1 UMSnsService.share(this, “這是內容”);
?
?
如果使用模板的話就傳一個Hashmap就去就可以了,具體可以看文檔。
我覺得友盟做的最好的就是提供其他的API,可以更靈活的使用相關功能了。
比如
1.獲取用戶授權
?
1 UMSnsService.CallbackListener listener = new UMSnsService.CallbackListener() 2 @Override 3 public void onComplete(Bundle value) { 4 String uid = value.getString("uid"); //這是授權完成的uid,使用其他授權服務的憑證 5 } 6 @Override 7 public void onError(UMSNSException e) { 8 } 9 }; 10 UMSnsService.oauthSina(this, listener);
?
?
2.直接分享到特定的SNS提供商
UMSnsService.update(this, UMSnsService.SHARE_TO.SINA, “這是內容”);
3.檢查用戶是否已經授權
UMSnsService.isAuthorized(this, UMSnsService.SHARE_TO.SINA);
更多的內容還是參考文檔。
還有一個統計數據可以查看:
總的來說我覺得友盟的分享SDK做的還是不錯的,雖然人人分享我一直沒有配置成功,而且布局有點問題,但是畢竟大大簡化了開發。
希望友盟以后增加一些其他的SNS提供商,然后相關功能越來越強大。
?
?
?
?
轉載自http://www.apkbus.com/android-44516-1-1.html
?
?
?
?
?
?