1. 程式人生 > >Android整合友盟社會化分享功能----關鍵在微信分享(MD5的處理)

Android整合友盟社會化分享功能----關鍵在微信分享(MD5的處理)

Android整合友盟社會化分享功能----關鍵在微信分享(MD5的處理:Window---》Preference---Android---》build:去掉冒號,大寫轉小寫)


MD5:B8:DB:FB:89:F0:F0:FC:7A:DB:10:D7:B4:AB:D6:06:13

最終得到的應用簽名
     b8dBfB89f0f0fc7adb10d7b4abd60613

1.  產品概述

友盟社會化元件,可以讓移動應用快速具備社會化分享、登入、評論、喜歡等功能,並提供實時、全面的社會化資料統計分析服務。

指南將會手把手教你使用社會化元件SDK,用5分鐘為APP增加新浪微博、騰訊微博、人人網分享功能。

注意:本文示例程式碼均針對最新版SDK,如果你所用SDK的類名或方法名與此文不符合,請使用你所用SDK的隨包文件、或者下載使用最新版SDK。

2.  獲取友盟Appkey

如果你之前已經在友盟註冊了應用,並獲取到了Appkey,可以繼續使用它.

如果你尚未在友盟註冊開發者賬號,需要先註冊,註冊之後登入你的賬號,點選**新增新應用**,填寫完應用基本資訊後,將進入"下載SDK並新增程式碼"頁面,此頁面即可得到Appkey

3.  下載並安裝SDK

  1. 新增程式碼和資源引用

jar檔案對應列表

平臺 jar檔案
騰訊微博 SocialSDK_TencentWB_1.jar,SocialSDK_TencentWB_2.jar
QQ空間\QQ好友 SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar
微信好友 SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar

注意

1:QQ和QQ Zone SSO(免登入)引用的jar檔案相同。當需要同時支援QQ和QQ Zone的時候,只需新增一次SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar檔案即可.
2:由於我們對微信的包名做了修改(libammsdk.jar -> SocialSDK_WeiXin.jar),如出現"Unable to execute dex: Multiple dex files define "問題,請刪除libammsdk.jar或者SocialSDK_WeiXin.jar中的一個即可解決問題。

3.1  新增資原始檔和jar檔案有三種方式,請根據您的需求進行選擇

3.2  方法A:快速整合工具 ( 推薦 )

1:解壓SDK下載包,雙擊執行SDK根目錄下的SDKIntegration.jar或者在命令列下輸入java -jar SDKIntegration.jar執行整合工具;
2:選擇Android工程的根目錄,並且填寫您的友盟App Key;
3:勾選所需平臺和元件,點選"快速整合";
4:檢查AndroidManifest.xml、jar檔案是否正確。如果集成了QQ或者QZone,請修改相應地appid。如下圖所示:

3.3  方法B:新增工程引用(升級方便,推薦)

解壓SDK壓縮包,將資料夾中的social_sdk_library_project資料夾匯入Eclipse,並在您的工程中新增對此專案的引用即可。

3.3.1  方法C:新增資源到現有專案中

解壓SDK壓縮包,將資料夾中的'main/libs'和'main/res'資料夾複製到你的專案工程根目錄下(如使用'ADT 17'以下使用者需要手動新增'libs'下的jar檔案到工程Path中):

SDK壓縮包目錄

3.4  ** Manifest配置,新增友盟Appkey/Activity/許可權**

<?xml version="1.0" encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.umeng.example"android:versionCode="1"android:versionName="1.0" >

    <applicationandroid:debuggable="true"android:icon="@drawable/icon"android:label="@string/app_name"android:theme="@android:style/Theme.Black.NoTitleBar" >

        <!-- ###################註冊SDK使用的Activity###################### -->
        <!--分享編輯頁-->
        <activityandroid:name="com.umeng.socialize.view.ShareActivity"android:configChanges="orientation|keyboard"android:launchMode="singleTask"android:noHistory="true"android:theme="@style/Theme.UMDialog"android:windowSoftInputMode="stateVisible|adjustResize" >
        </activity>

        <!-- ############ QQ空間和QQ SSO授權的Activity註冊 ############ -->
        <activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true" >
            <intent-filter>
                <actionandroid:name="android.intent.action.VIEW" />

                <categoryandroid:name="android.intent.category.DEFAULT" />
                <categoryandroid:name="android.intent.category.BROWSABLE" />
                <!-- 100424468,如果你使用的公用賬號,則不需要修改;否則修改成你在QQ開放平臺申請的 APP ID-->
                <dataandroid:scheme="tencent100424468" /> 
            </intent-filter>
        </activity>
        <activityandroid:name="com.tencent.connect.common.AssistActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:screenOrientation="portrait">
        </activity>



    <!-- ###################新增UmengAppkey###################### -->
        <meta-dataandroid:name="UMENG_APPKEY"android:value="xxxxxxxxxxxxxxxxxxxxxx" >
        </meta-data>

    </application>

    <uses-sdkandroid:minSdkVersion="8" />

    <!-- ###################宣告SDK使用的相關許可權###################### -->
    <!-- 檢測網路狀態 -->
    <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />  
    <!-- 獲取mac地址作為使用者的備用唯一標識 -->
    <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />     
    <!-- 獲取使用者手機的IMEI,用來唯一的標識使用者 -->
    <uses-permissionandroid:name="android.permission.READ_PHONE_STATE" />      
    <!-- 快取資源優先存入SDcard -->
    <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 允許應用程式聯網,以便向我們的伺服器端傳送資料 -->
    <uses-permissionandroid:name="android.permission.INTERNET" />
    <!-- QQ、QQ空間所需許可權 -->
<uses-permissionandroid:name="android.permission.GET_TASKS" />
</manifest>

如果選用多種UmengSDK產品使用不同Appkey,可為SocialSDK配置單獨的appkey,如下:

/*程式碼新增Appkey,如果設定了非null值,SocialSDK將使用該值.*/
SocializeConstants.APPKEY = "xxxxxxxxx";

4.  開啟平臺選擇面板

4.1  首先在您的Activity中新增如下成員變數並設定分享內容

// 首先在您的Activity中新增如下成員變數
final UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.share");
// 設定分享內容
mController.setShareContent("友盟社會化元件(SDK)讓移動應用快速整合社交分享功能,http://www.umeng.com/social");
// 設定分享圖片, 引數2為圖片的url地址
mController.setShareMedia(new UMImage(getActivity(), 
                                      "http://www.umeng.com/images/pic/banner_module_social.png"));
// 設定分享圖片,引數2為本地圖片的資源引用
//mController.setShareMedia(new UMImage(getActivity(), R.drawable.icon));
// 設定分享圖片,引數2為本地圖片的路徑(絕對路徑)
//mController.setShareMedia(new UMImage(getActivity(), 
//                                BitmapFactory.decodeFile("/mnt/sdcard/icon.png")));

// 設定分享音樂
//UMusic uMusic = new UMusic("http://sns.whalecloud.com/test_music.mp3");
//uMusic.setAuthor("GuGu");
//uMusic.setTitle("天籟之音");
// 設定音樂縮圖
//uMusic.setThumb("http://www.umeng.com/images/pic/banner_module_social.png");
//mController.setShareMedia(uMusic);

// 設定分享視訊
//UMVideo umVideo = new UMVideo(
//          "http://v.youku.com/v_show/id_XNTE5ODAwMDM2.html?f=19001023");
// 設定視訊縮圖
//umVideo.setThumb("http://www.umeng.com/images/pic/banner_module_social.png");
//umVideo.setTitle("友盟社會化分享!");
//mController.setShareMedia(umVideo);

4.2  人人網分享時,如果不設定website,點選¨應用名稱¨或者¨圖片¨將跳轉到人人網主頁;如果設定website將跳轉到此website的頁面。

設定website的方式如下:

mController.setAppWebSite(SHARE_MEDIA.RENREN, "http://www.umeng.com/social");

4.2.1  通過某個按鈕或其他方法彈出分享面板

mController.getConfig().removePlatform( SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN);
yourShareButton.setOnClickListener(new OnClickListener() {
    @Override
    publicvoidonClick(View v){
        // 是否只有已登入使用者才能開啟分享選擇頁
        mController.openShare(getActivity(), false);
    }
});


5.  驗證效果

編譯並執行後,點選新增分享功能的View出現如下頁面,那麼說明你已經整合成功基本的分享功能和平臺了!但是,為了使您的使用者有更好的分享體驗,以及您的應用有更多的分享量,更好地在社交平臺上傳播,我們建議您按照下面的指引進行SSO(免登入)和新平臺的設定。

選擇分享平臺面板 分享編輯頁

6.  各平臺SSO(免登入)配置

SSO名詞解釋 : SSO英文全稱Single Sign On,單點登入。SSO是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。
例如使用者已經登入新浪微部落格戶端,使用SSO授權登入時則不需要使用者手動輸入使用者名稱、密碼,直接點選登入即可, 因此可成為免登入.

6.1  配置SSO授權回撥

如果有使用任一平臺的SSO授權或者集成了facebook平臺, 則必須在對應的activity中實現onActivityResult方法, 並新增如下程式碼

@Override 
protectedvoidonActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    /**使用SSO授權必須新增如下程式碼 */
    UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode) ;
    if(ssoHandler != null){
       ssoHandler.authorizeCallBack(requestCode, resultCode, data);
    }
}

6.2  分享到微信和朋友圈

新增微信和朋友圈所依賴的jar檔案
1.解壓已下載的zip檔案,將platforms/weixin/libs目錄中SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar拷貝到工程的libs(如果沒有此目錄,新建libs目錄)目錄中。
2.在libs目錄中找到SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar檔案,滑鼠右鍵-->Add to Build Path。
3 將解壓目錄中platforms/weixin/res拷貝至你工程的res目錄。

6.3  新增如下整合程式碼


String appID = "wx967daebe835fbeac";
String appSecret = "5fa9e68ca3970e87a1f83e563c8dcbce";
// 新增微信平臺
UMWXHandler wxHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxHandler.addToSocialSDK();
// 新增微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();

微信和朋友圈支援純文字,純圖片(點選檢視大圖),圖文,音樂,視訊分享。
注意 
此版本相容了微信支付的功能,請更新SocialSDK_WeiXin_1.jar檔案。

6.4  微信和微信朋友圈的回撥

如果在您的專案中集成了微信或者微信朋友圈,並且您需要準確的分享回撥,則需要在AndroidManifest.xml中下注冊下面的回撥Activity。

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

然後將SDK包中platforms/weixin目錄下的wxapi資料夾拷貝到您的工程的包目錄下, 然後修改WXEntryActivity的完整路徑即可。
例如social_sdk_example的包名為com.umeng.soexample,因此將wxapi資料夾拷貝到com.umeng.soexample下,最終WXEntryActivity的 完整路徑為com.umeng.soexample.wxapi.WXEntryActivity。
其中分享的回撥介面SnsPostListener的onComplete方法的第二個引數代表分享的狀態碼,當值為200時表示分享成功;其餘的值則為分享失敗。

微信整合相關說明

微信整合注意以下幾點

  • 正確填寫AppID。
  • 工程的包名必須同申請應用的包名一致。
  • 在微信開放平臺填寫你App的的簽名,測試、釋出時要保證App的簽名跟微信開放平臺的簽名一致。
  • 開發者的應用需要通過稽核。開發者在申請應用必須要通過微信官網的稽核才能進行除錯。

Demo中整合的微信無法使用?

原因:Demo中使用的微信AppID繫結的簽名信息和你打包時所用的簽名信息不一致,導致無法響應. 解決辦法有兩個,您任選其一:

  • 申請一個測試Demo中AppID.(申請地址).
    填寫"包名"時請使用Demo的包名"com.umeng.soexample".
    填寫"簽名"使用簽名生成工具(簽名工具)生成,簽名時填寫Demo的包名.
    獲取微信AppID後替換Demo中的使用的AppID.

  • 使用SDK中的 debug.keystore編譯執行Demo工程.

6.5  分享給QQ好友

新增QQ分享所依賴的jar檔案

  1. 解壓已下載的zip檔案,將platforms/qq_zone/libs目錄中SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar拷貝到工程的libs(如果沒有此目錄,新建libs目錄)目錄中。

  2. 在libs目錄中找到SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar檔案,滑鼠右鍵-->Add to Build Path。

  3. 將解壓目錄中platforms/qq_zone/res檔案拷貝至你工程res目錄。

  4. 在AndroidManifest.xml中註冊AuthActivity,QQ空間和QQ共用該授權Activity,具體配置參考上文的AndroidManifest.xml檔案。

6.6  新增如下整合程式碼

//引數1為當前Activity,引數2為開發者在QQ互聯申請的APP ID,引數3為開發者在QQ互聯申請的APP kEY.
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(), "100424468",
                "c7394704798a158208a74ab60104f0ba");
qqSsoHandler.addToSocialSDK();  

注意:

1.此版本集成了QQ的最新jar檔案,請更新SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar檔案.

2.QQ分享內容為音樂,視訊的時候,其形式必須為url;圖片支援url和本地圖片型別.

3.QQ SSO授權不會在onActivityResult方法內被呼叫。

4.未安裝手機QQ客戶端的情況下,QQ不支援純圖片分享.

5.未安裝手機QQ客戶端的情況下,QQ取消授權不執行相關回調。

6.QQ和QQ空間授權,對於同一個應用同一個賬號返回的uid,openid相同。

相關推薦

Android整合社會化分享功能----關鍵分享(MD5處理)

Android整合友盟社會化分享功能----關鍵在微信分享(MD5的處理:Window---》Preference---Android---》build:去掉冒號,大寫轉小寫) MD5:B8:DB:FB:89:F0:F0:FC:7A:DB:10:D7:B4:AB:D6:0

Android開發——整合社會化分享遇到的坑(二)

前言 從工作到現在遇到了整合友盟社會化分享第二個坑,整合最新的版的友盟社會化分享SDK遇見了一個之前沒有遇到過的程式錯誤 java.lang.NoClassDeFoundError:Failed r

Android開發——整合社會化分享遇到的坑(一)

前言 在很多App開發當中都有社會化分享,我一般都是整合友盟的社會化分享功能。這次開發公司的App需要整合微信、朋友圈、QQ和QQ空間。我是整合第三方成功了,但是在QQ分享的時候出現了意外,第一次出現“Error該平臺不支援純文字分享”,讓我最鬱悶的是我分享的

cocos2dx整合社會化分享

appid對了 , key也對了,為什麼就是分享不成功呢,我日! 找了2天,發現,尼瑪,原來CCApp.java裡面也有做設定平臺資訊的配置, 原來這裡的appid appkey 不對。 改了這裡,就分享成功了。日。 public class CCApp extend

Android整合分享閃退

幾乎沒有人能一次性整合微信分享成功,失敗是在所難免的,所以我們不要氣餒 一定要在Application中設定如下程式碼 @Override public void onCreate() {

AndriodStudio整合社會化分享5.0SDK出現的問題

PS:並不是大神,如若有錯誤請指出。 錯誤描述 社會化分享SDK5.0 整合到Android Studio專案時,使用專案依賴來新增資原始檔和jar檔案,構建專案出現下面這種錯誤 錯誤資訊 Error:Execution failed for task

Android整合整合推送方案調研

Android整合友盟整合推送方案調研 鑑於專案apk瘦身的需求,經過調研,發現現有的推送整合方案可以優化。現有的推送方案是華為 + 小米 + 友盟推送,分別針對的是華為(包括榮耀)手機、小米手機、其他型別手機。這樣做的好處是,華為、小米系列的手機都可以支援離線訊息,推送訊息送達率有

Android 整合訊息推送

今天給夥伴們講解一下如何整合友盟的訊息推送 首先我們需要在友盟的官網註冊開發者賬號且建立一個訊息推送的運用 建立運用的時候包名就是咋們的程式包名 咋們這裡使用的是android studio 自動匯入模式(在app下的build.gradle裡面新增一下依賴)

Android整合整合測試,在整合測試裡卻不顯示實時日誌

在公司專案裡集成了友盟統計,怕測試資料汙染使用者真實資料,所以我又集成了友盟的整合測試(這裡就不介紹怎麼集成了,按照官方文件一步步來,很簡單),但是在新增完測試裝置,執行到測試裝置上後,在整合測試裡卻怎麼也檢視不到日誌,一度以為自己整合有錯誤,從頭檢查一遍,確信整合確實沒問題

百度分享https以及分享手機端連結

百度官方網站的分享是不支援https的,解決方案是: https://github.com/hrwhisper/baiduSharepc端分享是,存在一個問題,就是微信分享的連結問題,一般我們pc和手機都是分開的,而我們希望微信分享能夠分享掃碼到手機端,這個文件中有提到:on

Android 社會化分享整合與封裝

Android 友盟社會化分享的整合與封裝 分享是APP中非常高頻的操作之一,在Android的開發環境中,第三方分享框架也有很多。比較流行的包括 極光社會化分享(sharesdk)、友盟社會化分享(Ushare)、Mob社會化分享以及在githut上比較流行的 ShareSDK、Share

基於最新開發文件,整合分享功能,賦demo

整合準備 獲取Appkey 快速整合 獲取SDK,頁面截圖: 下載後開啟 匯入jar和res 添加回調Activity 微信 在包名目錄下建立wxapi資料夾,新建一個名為WXEntryActivity的activity繼承WXCallbackActivity。 QQ QQ不需

Android使用整合QQ、博等第三方分享

前言 最近專案需要加入第三方分享和登入功能,之前其他專案的第三方分享和登入一直都使用ShareSDK實現的。為了統一使用友盟的全家桶,所以三方分享和登入也就選擇了友盟。這裡記錄一下完整的整合與使用流程。 1、申請友盟Appkey 直接到友盟官網申請即可

cocos2dx Android植入分享功能

首先,說一下,cocos2dx中實現分享功能流程的原理機制,比如你在遊戲中點選分享按鈕,該按鈕的響應函式A是C++寫的,而該響應函式A通過JNI機制呼叫Android 平臺的響應函式B,而B是java寫的(Android平臺的JIN機制主要功能就是通過java程式碼呼叫C/C++程式碼,C/C++程式碼呼叫j

Android填坑之旅(第二十二篇)使用社會化分享的碰到的坑

最近有個專案又要使用分享功能模組,況且之前也整合過,於是乎趁現在專案沒有啟動,就提前預熱了一把,本想著兩個鐘頭搞定,然而儘管之前整合過一次,筆者發現過段時間之後還是像剛剛整合一樣,故寫下這篇博文加以記錄。 1.在使用友盟分享面板的時候出現面板無法彈出,只是

Android社會化分享 自定義分享頁面

因為專案需要,找了很多資料,也走了不少彎路,現在把友盟分享demo貼出,供大家參考。 原始碼下載:下載原始碼 1.MyApplication.java //初始化引數 public class MyApplication extends Applic

使用社會化分享安卓android版SDK分享純圖片到

本人使用的其實是友盟的Cocos2d-x安卓版。普通安卓版使用方式稍有不同,但是設定分享內容的介面是一樣的。友盟官方文件中提到過他們支援微信純圖片分享,就是分享一張純圖片,而非一條圖文連結,到微信朋友圈,點選之後變大圖的那種。但是他們並未說明如何設定,預設設定是分享一條圖文

Android第三方登入與分享自動整合的那些坑

自動整合的方式現在只支援微信,QQ,新浪三個平臺,如果需要使用其它平臺請選擇手動整合。 1:新增依賴     //友盟統計 compile 'com.umeng.sdk:common:1.5.1' compile 'com.umeng.sdk:analytics:7.5.0

android studio分享

com 最新 bsp clas 修改 sta 調試日誌 color style 這個東西搞了整整兩天真是把我搞郁悶著了,官方demo下載後,根據提示的錯誤,修改了一個小bug之後,便能直接運行,但是不管我如何集成到自己app上,分享時APP都會黑屏Crash,並且代

android使用實現第三方登錄、分享以及回調無反應問題解決辦法

nta 社會 四大 線程池 down 混合app value int ring Leaning_wk每一次的進步都會拉近與成功的距離! 帳號設置退出 關閉