android ShareSDK分享,QQ,微信,新浪等分享

1.需要去ShareSDK网站下载sdk,http://www.mob.com/downloadDetail/ShareSDK/android

需要哪种分享就选中哪几种

2.打开所下载的包在ShareSDK for Android中找到QuickIntegrater,打开QuickIntegrater,上面的项目名是一会生成的文件夹,下面的包名一定要改为我们自己的包名
3.然后打开生成的文件夹assets,需要放在mian下 就是在mian再建个assets文件夹,然后其他的一一对应复制到里面就行了
4.需要设置的key值需要在assets下的xml文件中更改,分享到什么平台就需要那个平台的key值

这里写图片描述

5.设置权限
  <!-- 添加必要的权限 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <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" />

设置其他需要的ShareSDK分享的key

<!-- 以MobApplication作为项目Application -->
<application
       android:name="com.mob.MobApplication">

       <!-- 其它的activity -->

       <!-- ShareSDK的activity -->
<activity
     android:name="com.mob.tools.MobUIShell"
     android:theme="@android:style/Theme.Translucent.NoTitleBar"
     android:configChanges="keyboardHidden|orientation|screenSize"
     android:windowSoftInputMode="stateHidden|adjustResize" >

    <!-- 调用新浪原生SDK,需要注册的回调activity -->
    <intent-filter>
        <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

    <!--集成line客户端登录授权,需要添如下格式的过滤器-->
    <intent-filter> 
    <data android:scheme="line.1477692153" />
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

<!-- ShareSDK<strong>3.1.0版本之前</strong>才需要在MobUIShell下面注册此意图,3.1.0版本之后(包含3.1.0)不需要注册此intent-->
 <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> 
</activity>
<!-- 填写您从Mob开发者后台中得到的Appkey和AppSecret -->
<meta-data android:name="Mob-AppKey" android:value="您的AppKey"/>
<meta-data android:name="Mob-AppSecret" android:value="您的AppSecret"/>

如果集成QQ分享,或者使用QQ客户端来进行QQ空间的分享,须要在此处添加一个回调activity,对ACTION_VIEW事件的过滤器,其中的scheme是“tencent”前缀再开发者应用的加上appId。如果此Activity和过滤器不设置,则分享结束以后不能得到正确的回调。

<activity
     android:name="cn.sharesdk.tencent.qq.ReceiveActivity"
     android:launchMode="singleTask"
     android:noHistory="true">
     <intent-filter>
         <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data android:scheme="tencent100371282" />
     </intent-filter>
</activity>

如果您的项目集微信或者微信朋友圈,请查看AndroidManifest.xml配置文件里的package路径,需要在package目录下创建wxapi目录再放置WXEntryActivity。 没有此activity在微信分享后回调会检查是否有此activity,没有将会报错。

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

而如果您的项目集易信的两个平台,请查看AndroidManifest.xml配置文件里的package路径需要在package目录下创建yxapi目录在放置回调Activity:

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

而如果您的项目集支付宝的两个平台,请查看AndroidManifest.xml配置文件里的package路径需要在package目录下创建apshare目录在放置回调Activity:

<!-- 支付宝分享回调 -->

<activity
    android:name=".apshare.ShareEntryActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"/>

而如果您的项目集钉钉的平台,请查看AndroidManifest.xml配置文件里的package路径需要在package目录下创建ddshare目录在放置回调Activity:

<!-钉钉分享回调-->
<activity
   android:name=".ddshare.DDShareActivity"
    android:launchMode="singleInstance"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"></action>
        <category android:name="android.intent.category.DEFAULT"></category>
    </intent-filter>
</activity>

这四个类的路径是需要根据您项目的包名来确定,如果路径错误,您将收不到操作回调,因此ShareSDK也无法给予您操作回调。为了避免出错,请使用相对路径的方式,直接复制上面的代码到您的AndroidManifest.xml中即可。

添加配置以后,就可以调用授权、获取资料、分享等操作了:

private void showShare() {
     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(getString(R.string.share));
     // 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(getString(R.string.app_name));
     // siteUrl是分享此内容的网站地址,仅在QQ空间使用
     oks.setSiteUrl("http://sharesdk.cn");

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

下面贴一段代码:


public class MainActivity extends AppCompatActivity {

    Button btn_share;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_share = (Button) findViewById(R.id.btn_share);
        btn_share.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showShare();
            }
        });
    }


    private void showShare() {
        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("getString(R.string.share)");
        // 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(getString(R.string.app_name));
        // siteUrl是分享此内容的网站地址,仅在QQ空间使用
    //    oks.setSiteUrl("http://sharesdk.cn");

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

}

需要注意的是微信分享必须正版打包才行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值