Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ

本文详细介绍如何使用ShareSDK实现在Android应用中的一键分享功能,包括集成步骤、权限设置及示例代码,特别针对微信和QQ分享进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ


事先说明:

ShareSDK默认QQ可以分享,微信分享则需要在微信的开放平台上认证并申请应用填入对应信息即可

微信认证和申请应用涉及到打包和签名APK,请大家自行查询相关资料进行操作

关于ShareSDK的开发,参考ShareSDK官网为准


步骤一:在ShareSDk官网注册账号,并创建应用:



步骤二:在ShareSDk官网下载所需要的分享的SDK(这里只是介绍微信和QQ两种,其他都一样):


步骤三:将下载好的包解压,在Android Studio中导入两个Module,在ShareSDk for android文件夹Libs目录下2个文件夹,即是要导入的Module


导入之后,项目结构多了一个oneKeyShareNew和shareSDK:



步骤四:接着右键oneKeyShareNew,open Module Settings,添加对ShareSDK的依赖



步骤五:重复上面步骤,在自己的项目中添加对oneKeyShareNew的依赖



步骤六:在你的项目中创建一个Assets的目录,将ShareSDK for Android/Res目录下的ShareSDK.xml复制到Assets



步骤七:将ShareSDK for Android/Src目录下的wxapi文件夹复制到你的项目中



步骤八:添加权限

[java]  view plain  copy
  1. <uses-permission android:name="android.permission.GET_TASKS" />  
  2. <uses-permission android:name="android.permission.INTERNET" />  
  3. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  4. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  5. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
  6. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  7. <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  8. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>  
  9. <uses-permission android:name="android.permission.GET_ACCOUNTS"/>  
  10. <!-- 蓝牙分享所需的权限 -->  
  11.  <uses-permission android:name="android.permission.BLUETOOTH" />  
  12.  <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />  

步骤九:在ShareSDK.xml中添加ShareSDK应用APPKey

[java]  view plain  copy
  1. <ShareSDK  
  2.         AppKey = "1185fd429f4da"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"-->  

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

[java]  view plain  copy
  1. <!-- shareSDK begin -->  
  2. <activity  
  3.     android:name="com.mob.tools.MobUIShell"  
  4.     android:configChanges="keyboardHidden|orientation|screenSize"  
  5.     android:screenOrientation="portrait"  
  6.     android:theme="@android:style/Theme.Translucent.NoTitleBar"  
  7.     android:windowSoftInputMode="stateHidden|adjustResize">  
  8.     <intent-filter>  
  9.         <data android:scheme="tencent1104646053" />  
  10.   
  11.         <action android:name="android.intent.action.VIEW" />  
  12.   
  13.         <category android:name="android.intent.category.BROWSABLE" />  
  14.         <category android:name="android.intent.category.DEFAULT" />  
  15.     </intent-filter>  
  16. </activity>  
  17. <!-- 微信分享回调 -->  
  18. <activity  
  19.     android:name=".wxapi.WXEntryActivity"  
  20.     android:configChanges="keyboardHidden|orientation|screenSize"  
  21.     android:exported="true"  
  22.     android:screenOrientation="portrait"  
  23.     android:theme="@android:style/Theme.Translucent.NoTitleBar" />  
  24. <!-- shareSDK end -->  

步骤十一:在代码中可以使用官方文档代码进行分享了

[java]  view plain  copy
  1. @Override  
  2. public void onCreate() {  
  3.     super.onCreate();  
  4.     //初始化shareSDK  
  5.     ShareSDK.initSDK(this);  
  6. }  

[java]  view plain  copy
  1. /** 
  2.  * 一鍵分享 
  3.  */  
  4. private void showShare() {  
  5.     //ShareSDK初始化  
  6.     ShareSDK.initSDK(getActivity());  
  7.     OnekeyShare oks = new OnekeyShare();  
  8.     //关闭sso授权  
  9.     oks.disableSSOWhenAuthorize();  
  10.     // 分享时Notification的图标和文字  2.5.9以后的版本不调用此方法  
  11.     //oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));  
  12.     // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用  
  13.     oks.setTitle("分享");  
  14.     // titleUrl是标题的网络链接,仅在人人网和QQ空间使用  
  15.     oks.setTitleUrl("http://sharesdk.cn");  
  16.     // text是分享文本,所有平台都需要这个字段  
  17.     oks.setText("我爱京东");  
  18.     // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数  
  19.     // oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片  
  20.     // url仅在微信(包括好友和朋友圈)中使用  
  21.     oks.setUrl("http://sharesdk.cn");  
  22.     // comment是我对这条分享的评论,仅在人人网和QQ空间使用  
  23.     //oks.setComment("我是测试评论文本");  
  24.     // site是分享此内容的网站名称,仅在QQ空间使用  
  25.     oks.setSite("我爱京东");  
  26.     // siteUrl是分享此内容的网站地址,仅在QQ空间使用  
  27.     oks.setSiteUrl("http://sharesdk.cn");  
  28.     // 启动分享GUI  
  29.     oks.show(getActivity());  
  30. }  
  31.   
  32. @Override  
  33. public void onDestroy() {  
  34.     super.onDestroy();  
  35.     //停止shareSDK  
  36.     ShareSDK.stopSDK(getActivity());  
  37. }  


步骤十二:完成以上步骤只能对QQ进行分享,如果还想对微信分享,则需要在微信开放平台创建应用获取APPID和APPSecret,并将其填入ShareSDK中对应的标签中即可。这里大家可能集成后还是不能分享,很有可能你是直接用usb调试安装的APK或者是debug的APK,这个时候并不是你自己build签名好的APK,所以大家先build签名好的APK再传到手机安装。



步骤十三:查看效果图(QQ和weChat)



其他效果图(新浪微博、腾讯微博、QQ空间)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值