天天看點

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

事先說明:

ShareSDK預設QQ可以分享,微信分享則需要在微信的開放平台上認證并申請應用填入對應資訊即可

微信認證和申請應用涉及到打包和簽名APK,請大家自行查詢相關資料進行操作

關于ShareSDK的開發,參考ShareSDK官網為準

步驟一:在ShareSDk官網新增賬號,并建立應用:

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

步驟二:在ShareSDk官網下載下傳所需要的分享的SDK(這裡隻是介紹微信和QQ兩種,其他都一樣):

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

步驟三:将下載下傳好的包解壓,在Android Studio中導入兩個Module,在ShareSDk for Android檔案夾Libs目錄下2個檔案夾,即是要導入的Module

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

導入之後,項目結構多了一個oneKeyShareNew和shareSDK:

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

步驟四:接着右鍵oneKeyShareNew,open Module Settings,添加對ShareSDK的依賴

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

步驟五:重複上面步驟,在自己的項目中添加對oneKeyShareNew的依賴

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

步驟六:在你的項目中建立一個Assets的目錄,将ShareSDK for Android/Res目錄下的ShareSDK.xml複制到Assets

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

步驟七:将ShareSDK for Android/Src目錄下的wxapi檔案夾複制到你的項目中

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

步驟八:添權重限

<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"/>
 <!-- 藍牙分享所需的權限 -->
  <uses-permission android:name="android.permission.BLUETOOTH" />
  <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />           

步驟九:在ShareSDK.xml中添加ShareSDK應用APPKey

<ShareSDK
        AppKey = "1185fd429f4da"/> <!-- 修改成你在sharesdk背景注冊的應用的appkey"-->           

步驟十:添加所ShareSDK需要的manifests配置

<!-- shareSDK begin -->
        <activity
            android:name="com.mob.tools.MobUIShell"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:windowSoftInputMode="stateHidden|adjustResize">
            <intent-filter>
                <data android:scheme="tencent1104646053" />

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <!-- 微信分享回調 -->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <!-- shareSDK end -->           

步驟十一:在代碼中可以使用官方文檔代碼進行分享了

@Override
    public void onCreate() {
        super.onCreate();
        //初始化shareSDK
        ShareSDK.initSDK(this);
    }           
/**
     * 一鍵分享
     */
    private void showShare() {
        //ShareSDK初始化
        ShareSDK.initSDK(getActivity());
        OnekeyShare oks = new OnekeyShare();
        //關閉sso授權
        oks.disableSSOWhenAuthorize();
        // 分享時Notification的圖示和文字  2.5.9以後的版本不調用此方法
        //oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
        // title标題,印象筆記、郵箱、資訊、微信、人人網和QQ空間使用
        oks.setTitle("分享");
        // titleUrl是标題的網絡連結,僅在人人網和QQ空間使用
        oks.setTitleUrl("http://sharesdk.cn");
        // text是分享文本,所有平台都需要這個字段
        oks.setText("我愛京東");
        // imagePath是圖檔的本地路徑,Linked-In以外的平台都支援此參數
        // oks.setImagePath("/sdcard/test.jpg");//確定SDcard下面存在此張圖檔
        // url僅在微信(包括好友和朋友圈)中使用
        oks.setUrl("http://sharesdk.cn");
        // comment是我對這條分享的評論,僅在人人網和QQ空間使用
        //oks.setComment("我是測試評論文本");
        // site是分享此内容的網站名稱,僅在QQ空間使用
        oks.setSite("我愛京東");
        // siteUrl是分享此内容的網站位址,僅在QQ空間使用
        oks.setSiteUrl("http://sharesdk.cn");
        // 啟動分享GUI
        oks.show(getActivity());
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        //停止shareSDK
        ShareSDK.stopSDK(getActivity());
    }           

步驟十二:完成以上步驟隻能對QQ進行分享,如果還想對微信分享,則需要在微信開放平台建立應用擷取APPID和APPSecret,并将其填入ShareSDK中對應的标簽中即可。這裡大家可能內建後還是不能分享,很有可能你是直接用usb調試安裝的APK或者是debug的APK,這個時候并不是你自己build簽名好的APK,是以大家先build簽名好的APK再傳到手機安裝。

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

步驟十三:檢視效果圖(QQ和weChat)

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ

其他效果圖(新浪微網誌、騰訊微網誌、QQ空間)

Android實戰——ShareSDk的使用,實作一鍵分享微信好友、朋友圈、QQ