Android使用ShareSDK实现应用分享的功能

作者:匡效国 时间:2023-10-02 06:37:42 

简介

今天给大家带来的是使用ShareSDK实现应用分享的功能。下面我们先看下效果图。

效果图

Android使用ShareSDK实现应用分享的功能

步骤

1. 获取AppKey

访问mob官网http://mob.com注册账号–》点击头像进入“后台中心”–》选择shareSDK–》添加应用–》获取AppKey。

Android使用ShareSDK实现应用分享的功能

点击添加后,就可以生成项目对应的AppKey。

Android使用ShareSDK实现应用分享的功能

2. SDK下载

访问mob官网http://mob.com下载最新的sdk。

Android使用ShareSDK实现应用分享的功能

然后点击一键下载就可以下载最新的sdk。

Android使用ShareSDK实现应用分享的功能

3. sdk目录结构

Android使用ShareSDK实现应用分享的功能 

上面这张图就是我们下载下来的sdk的所有文件,其中我们集成用到的就是红色区域标记的部分。

4. 使用java命令生成项目

Android使用ShareSDK实现应用分享的功能

使用java -jar命令编译我们下载的QuickIntegrater.jar文件,就会弹出一个对话框,我们添入我们的项目名称还有包名,点击确定,然后就会自动生成一个和我们项目相关的文件夹。如下图所示:

Android使用ShareSDK实现应用分享的功能

5. 复制文件

我们只需要把对应的文件复制到我们的项目中就可以。详细的目录结构如下图所示。

 Android使用ShareSDK实现应用分享的功能

需要注意的是,图中的libs中的jar包我们已经添加为library了。在第一次复制进来的时候,我们需要右键–》点击“Add as library”进行编译。这样我们才能使用其中的api。

6. AppKey的替换

替换assets文件夹下的AppKey

Android使用ShareSDK实现应用分享的功能

7. 权限添加

在AndroidManifest.xml添加下列权限:


<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" />

8. activity声明


<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">
  <!-- QQ和QQ空间分享 QQ登录的回调必须要配置的 -->
  <intent-filter>
   <data android:scheme="tencent100371282" />
   <action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.BROWSABLE" />
   <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>

<!-- 新浪微博客户端分享回调必须配置 -->
  <intent-filter>
   <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
   <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>

9. 创建ShareApplication

初始化ShareSDK


public class ShareApplication extends Application {

private static final String APP_KEY = "193e71d0869ce";

@Override
public void onCreate() {
 super.onCreate();
 ShareSDK.initSDK(this, APP_KEY);
}
}

并把ShareApplication应用到AndroidManifest中:


<application
 android:name=".ShareApplication"
 android:allowBackup="true"
 android:icon="@mipmap/ic_launcher"
 android:label="@string/app_name"
 android:supportsRtl="true"
 android:theme="@style/AppTheme">
 <activity android:name=".MainActivity">

10. MainActivity实现分享


public class MainActivity extends AppCompatActivity {

private Button shareButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

shareButton = (Button) findViewById(R.id.share_button);

initListener();
}

private void initListener() {
 shareButton.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
   share();
  }
 });
}

private void share() {
 ShareSDK.initSDK(this);
 OnekeyShare oks = new OnekeyShare();
 //关闭sso授权
 oks.disableSSOWhenAuthorize();
 // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
 oks.setTitle("标题");
 // titleUrl是标题的网络链接,QQ和QQ空间等使用
 oks.setTitleUrl("http://sharesdk.cn");
 // text是分享文本,所有平台都需要这个字段
 oks.setText("Testing message");
 // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
 //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
 // url仅在微信(包括好友和朋友圈)中使用
 oks.setUrl("http://sharesdk.cn");
 // comment是我对这条分享的评论,仅在人人网和QQ空间使用
 oks.setComment("我是测试评论文本");
 // site是分享此内容的网站名称,仅在QQ空间使用
 oks.setSite(getString(R.string.app_name));
 // siteUrl是分享此内容的网站地址,仅在QQ空间使用
 oks.setSiteUrl("http://sharesdk.cn");

// 启动分享GUI
 oks.show(this);
}
}

总结

至此,整个ShareSDK就集成到我们的项目中来了,实现效果就是我们篇头的gif动画。
其实所有的东西本身并不难,就看你敢不敢去做这件事,并且很出色地把它完成。

源码下载:Android实现ShareSDK分享

来源:https://blog.csdn.net/kuangxiaoguo0123/article/details/53301005

标签:Android,ShareSDK,分享
0
投稿

猜你喜欢

  • java文件输出流写文件的几种方法

    2023-11-08 16:17:30
  • 带着新人看java虚拟机01(推荐)

    2023-05-28 04:38:16
  • android 动态控制状态栏显示和隐藏的方法实例

    2023-07-08 10:11:43
  • hibernate-validator如何使用校验框架

    2023-05-25 07:26:29
  • Java 基础之事务详细介绍

    2021-12-16 19:35:36
  • C# string格式的日期时间字符串转为DateTime类型的方法

    2022-04-07 09:34:30
  • Java与SpringBoot对redis的使用方式

    2021-06-11 19:23:39
  • SpringMVC中@RequestMapping注解用法实例

    2022-02-26 11:22:58
  • Java算法之时间复杂度和空间复杂度的概念和计算

    2023-06-11 17:47:56
  • c#和avascript加解密之间的互转代码分享

    2022-03-22 10:15:28
  • Android人脸识别Demo竖屏YUV方向调整和图片保存(分享)

    2022-11-24 00:47:42
  • C#基于UDP实现的P2P语音聊天工具

    2022-01-18 17:44:15
  • Mybatis中一条SQL使用两个foreach的问题及解决

    2022-02-04 06:05:41
  • 手把手教你JAVA进制之间的转换

    2023-11-14 23:18:56
  • 详谈@Autowired和static的关系

    2022-06-14 05:51:50
  • Android实现在一个activity中添加多个listview的方法

    2023-10-13 14:41:22
  • Kotlin基础学习之lambda中return语句详解

    2023-09-04 16:33:41
  • SpringCloud实战之Feign声明式服务调用

    2022-07-02 08:25:30
  • SpringBoot搭配AOP实现自定义注解

    2022-04-07 01:21:59
  • 详解Java多态对象的类型转换与动态绑定

    2021-10-12 06:59:59
  • asp之家 软件编程 m.aspxhome.com