AndroidStudio实现第三方QQ分享,空间分享
来源:互联网 发布:交换机端口上的ip 编辑:程序博客网 时间:2024/05/16 10:11
分享在每个App应用中是很常见的,今天就来实现一下接入QQ提供的第三方分享。
1.使用QQ分享时记得先到我们的腾讯开放平台注册账号然后获取开发者资格地址:http://open.qq.com/ 创建应用获取AppId和AppKey,具体请看我的这篇博客:http://blog.csdn.net/sandyran/article/details/53319846
然后下载SDKJar地址:http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD
2.接下来打开我们的AndroidStudio新建一个项目把刚才下载的SDK放入到libs中然后添加依赖
结构如下:
3.开启我们的集成之路吧打开AndroidManifest在里面添加权限和注册SDKActivity
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.shiran.qqsharedemo"> <!-- QQ分享所需权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 注册SDKActivity --> <activity android:name="com.tencent.tauth.AuthActivity" android:noHistory="true" android:launchMode="singleTask" > <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="tencentID1105602574" /> <!-- 获取的APPID --> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize" /> </application></manifest>
打开布局文件在里面放入三个Button按钮
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.shiran.qqsharedemo.MainActivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="QQ分享" android:onClick="qqShare"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="QQ空间分享" android:onClick="qqQzoneShare"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="分享音乐" android:onClick="qqMusicShare"/></LinearLayout>
MainActivity代码如下
package com.shiran.qqsharedemo;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import com.tencent.connect.share.QQShare;import com.tencent.connect.share.QzoneShare;import com.tencent.tauth.IUiListener;import com.tencent.tauth.Tencent;import com.tencent.tauth.UiError;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { private static final String APP_ID = "1105602574"; //获取的APPID private ShareUiListener mIUiListener; private Tencent mTencent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //传入参数APPID mTencent = Tencent.createInstance(APP_ID, MainActivity.this.getApplicationContext()); } /** * 分享到QQ * @param v */ public void qqShare(View v) { final Bundle params = new Bundle(); params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);//分享的类型 params.putString(QQShare.SHARE_TO_QQ_TITLE, "然了个然CSDN博客");//分享标题 params.putString(QQShare.SHARE_TO_QQ_SUMMARY,"不管是怎样的过程,最终目的还是那个理想的结果。");//要分享的内容摘要 params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,"http://blog.csdn.net/sandyran");//内容地址 params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,"http://avatar.csdn.net/B/3/F/1_sandyran.jpg");//分享的图片URL params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "测试");//应用名称 mTencent.shareToQQ(MainActivity.this, params, new ShareUiListener()); } /** * 分享到QQ空间 * @param v */ public void qqQzoneShare(View v) { int QzoneType = QzoneShare.SHARE_TO_QZONE_TYPE_NO_TYPE; Bundle params = new Bundle(); params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE, QzoneType); params.putString(QzoneShare.SHARE_TO_QQ_TITLE, "然了个然CSDN博客");//分享标题 params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "不管是怎样的过程,最终目的还是那个理想的结果。");//分享的内容摘要 params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, "http://blog.csdn.net/sandyran/article/details/53204529");//分享的链接 //分享的图片, 以ArrayList<String>的类型传入,以便支持多张图片(注:图片最多支持9张图片,多余的图片会被丢弃) ArrayList<String> imageUrls = new ArrayList<String>(); imageUrls.add("http://avatar.csdn.net/B/3/F/1_sandyran.jpg");//添加一个图片地址 params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, imageUrls);//分享的图片URL mTencent.shareToQzone(MainActivity.this, params, new ShareUiListener()); } /** * 分享音乐 * @param v */ public void qqMusicShare(View v) { final Bundle params = new Bundle(); params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);//分享的类型 params.putString(QQShare.SHARE_TO_QQ_TITLE, "歌曲名:说穿");//分享的标题 params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, "专辑名:最好的我们,歌手:谢楠");//分享的内容摘要 params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, "https://y.qq.com/n/yqq/song/004Dle9I3TaSai.html");//分享的链接 params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "https://y.gtimg.cn/music/photo_new/T002R300x300M000000kbocv24CRbE.jpg?max_age=2592000");//分享的图片URL params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "测试");//应用名称 params.putString(QQShare.SHARE_TO_QQ_EXT_INT, String.valueOf(QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN));//分享时自动打开分享到QZone的对话框 mTencent.shareToQQ(MainActivity.this, params, new ShareUiListener()); } /** * 自定义监听器实现IUiListener,需要3个方法 * onComplete完成 onError错误 onCancel取消 */ private class ShareUiListener implements IUiListener { @Override public void onComplete(Object response) { //分享成功 } @Override public void onError(UiError uiError) { //分享失败 } @Override public void onCancel() { //分享取消 } } /** * 回调 * @param requestCode * @param resultCode * @param data */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (null != mTencent) { mTencent.onActivityResult(requestCode, resultCode, data); } }}
以上是接入QQ分享的全部代码,并以成功接入QQ分享用你的手机去测试一下吧。
0 0
- AndroidStudio实现第三方QQ分享,空间分享
- shareSDK实现QQ第三方分享
- iOS开发之第三方分享QQ分享实现
- 第三方分享QQ QQZONE
- 第三方登录QQ、分享
- QQ第三方分享详解
- QQ第三方登录+分享
- iOS开发第三方分享 QQ分享
- iOS开发之第三方分享QQ分享,史上最新最全第三方分享QQ方式实现
- iOS开发之第三方分享QQ分享,史上最新最全第三方分享QQ方式实现
- QQ第三方登录与QQ分享
- android 实现QQ第三方登录,分享功能
- Android第三方QQ登录、获取个人信息、分享实现
- 友盟第三方实现qq等分享
- 友盟第三方分享 QQ QQ空间 微信 新浪 及走过的坑
- QQ 微信 第三方登录 分享
- 第三方 ShareSdk QQ、微信分享
- 第三方 QQ分享的使用
- CSS3和JS制作菱形特效
- MySQL基本使用
- L1-015. 跟奥巴马一起画方块
- android 设置状态栏的颜色
- C++拷贝构造函数
- AndroidStudio实现第三方QQ分享,空间分享
- jQuery 插件学习笔记
- JavaScript初步了解
- 使用peewee_migrate来进行数据库结构的自动迁移
- RESTful架构理解
- Linux下安装mongodb
- TensorFlow学习笔记(二)---MNIST代码分析
- 机器学习面试题
- 周易六十四卦——火水未济卦