天天看点

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