内容简介:开头废话:前些日子换了手机,旧手机上的数据忘了迁移备份就急急忙忙的重置格式化了,很难受!开发的一些APP源码也就给丢失了,然后只好去自己的群里面,找到曾经上传的旧版本,把他反编译出来一点点的还原。逆向始终不是自己会玩的东西,所以效果很不理想,特别是我这种纯手机端进行编写操作的编程爱好者。蓝瘦香菇!:full_moon_with_face:今天想要说一下那个自定义QQ分享的东西,官方文档以及demo最近也好像是做了一下更新。最烦的就是更新了的文档也不是那么的简洁明了,实在不是很适合给一般的coder看 ̄  ̄
开头废话:前些日子换了手机,旧手机上的数据忘了迁移备份就急急忙忙的重置格式化了,很难受!开发的一些APP源码也就给丢失了,然后只好去自己的群里面,找到曾经上传的旧版本,把他反编译出来一点点的还原。逆向始终不是自己会玩的东西,所以效果很不理想,特别是我这种纯手机端进行编写操作的编程爱好者。蓝瘦香菇!
:full_moon_with_face:今天想要说一下那个自定义QQ分享的东西,官方文档以及demo最近也好像是做了一下更新。最烦的就是更新了的文档也不是那么的简洁明了,实在不是很适合给一般的coder看 ̄  ̄)σ。
:yum:好吧,还是直接去开始吧。
打开我的AIDE...
新建工程项目
到 QQ开放平台 下载SDK
解压SDK,把两个jar包导入工程项目的libs文件夹,没有这个文件夹自己新建一下
然后,我们就可开始码代码了
首先配置一下AndroidManifest文件,权限设置和注册Activity
权限代码:
`<!-- APP联网所需权限 -->
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 在SDCard中创建和删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 往SDCard中写入数据的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> `
当然,以上权限并不全都用的上或者不够,可以根据自己的需求进行增减。然后是SDK需要的Activity注册了,一下代码放入到<application>标签中即可:
<!-- 注册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="tencentID1106885928" /> <!-- 获取的APPID --> </intent-filter> </activity>
新版的SDK增加了AssistActivity,所以也要在这里给他加上去
<activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize" />
配置好了之后,就开始写 java 代码了。
首先,创建实例。Tencent是SDK的功能入口,所有的接口调用都得通过Tencent进行调用。因此,调用SDK,首先需要创建一个Tencent实例,其代码如下:
private static final String APP_ID = "1106885928"; // appid跟换成你自己的,可以在开放平台新建应用之后获取 private Tencent mTencent; //传入参数APPID mTencent = Tencent.createInstance(APP_ID, MainActivity.this.getApplicationContext());
接下来就是实现回调,也就是你分享东西出去是成功了还是失败了,又或者是用户取消了分享呢?具体就是:
/** * 自定义监听器实现IUiListener,需要3个方法 * onComplete完成 onError错误 onCancel取消 */ private class ShareUiListener implements IUiListener { @Override public void onComplete(Object response) { //分享成功 def_note("成功分享!"); } @Override public void onError(UiError uiError) { //分享失败 def_note("分享失败!"); } @Override public void onCancel() { //分享取消 def_note("您取消了分享!"); } } /** * 回调 * @param requestCode * @param resultCode * @param data */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (null != mTencent) { mTencent.onActivityResult(requestCode, resultCode, data); } }
到这里就基本上搞好了。然后就是对官方文档里面提到的api数据封装功能函数,可以分享链接,音乐,图片,应用这些东西,具体就是这样:
/** * 分享到QQ * @param v */ public void qqShare(String t, String s, String u, String p, String w) { 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, t);//分享标题 params.putString(QQShare.SHARE_TO_QQ_SUMMARY, s);//要分享的内容摘要 params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, u);//内容地址 params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, p);//分享的图片URL params.putString(QQShare.SHARE_TO_QQ_APP_NAME, w);//应用名称 mTencent.shareToQQ(MainActivity.this, params, new ShareUiListener()); } /** * 分享到QQ空间 * @param v */ public void qqQzoneShare(String t, String s, String u, String p, String w) { 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, t);//分享标题 params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, s);//分享的内容摘要 params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, u);//分享的链接 //分享的图片, 以ArrayList<String>的类型传入,以便支持多张图片(注:图片最多支持9张图片,多余的图片会被丢弃) ArrayList<String> imageUrls = new ArrayList<String>(); imageUrls.add("http://www.hzv5.cn/logo.jpg");//添加一个图片地址 params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, imageUrls);//分享的图片URL mTencent.shareToQzone(MainActivity.this, params, new ShareUiListener()); } /** * 分享音乐 * @param v */ private void qqAudioShare(String t, String s, String u, String p, String w) { int ii = def_getNum(0, songlist.length - 1); final Bundle params = new Bundle(); params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_AUDIO); params.putString(QQShare.SHARE_TO_QQ_TITLE, t); params.putString(QQShare.SHARE_TO_QQ_SUMMARY, s); params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, u); params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, p); params.putString(QQShare.SHARE_TO_QQ_AUDIO_URL, songlist[ii]); params.putString(QQShare.SHARE_TO_QQ_APP_NAME, w); //params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN); mTencent.shareToQQ(MainActivity.this, params, new ShareUiListener()); }
到这里整个工程项目的QQ自定义分享基本上就完成了,这里算是给自己也做了一份备份。
另外再备份两个东西,那就是安卓的android-support-v4,和v7支持包,特别是v7包,网上找的全是那种缺胳膊少腿的,找个完整的v7找了我两天时间!这个是安卓25版本的。不是最新,但是够用就行了。
v4下载链接: 点击下载v4 提取码:65o3
v7下载链接: 点击下载v7 提取码:n54t
OK,:grin:完美!
笔芯❤!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- PostgreSQL基础备份_增量备份与任意点恢复
- 深度备份还原工具 V1.0 正式发布 — 备份还原,安全可靠
- dba+工具:MongoDB热备份工具,解决官方版备份缺陷
- 云备份软件 v1.2 升级,可备份到自建 SFTP
- SQLServer2008r2容灾备份还原及自动删除过期备份
- MySQL主从备份和主主备份配置+Keepalived+MySQL读写分离
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。