最近在做分享功能,主要是实现QQ和微信分享,打算把自己实现过程跟大家分享一下,也是本人第一次发博客。好了,废话不多说,直接正题。
我把各种分享封装到一个类ShareUtil中,打算通过调用这个类里面的方法来实现分享,不过在使用这个类之前,我们必须首先进行一系列配置和准备工作。
一、注册官网帐号并登陆,审核应用并通过,下载签名工具获取你的应用的签名并填写到官方网站应用签名中
1、在分享之前,我们必须到相关官方开放平台申请创建我们的应用,填写应用的包名等相关信息并通过审核,通过审核后我们会得到应用的APPID和APPSECRET;这里的APPID有重大用处,我们后面的分享要用到。还有要注意,目前微信分享必须要先下载签名工具,直接在官方网站那下载,用来获取你的APP签名,做法是下载签名工具完后安装到手机,你必须已经在你的手机安装你的APP,打开签名工具输入你的应用包名,会得到该应用的签名(一大串字符),然后填写到官方网站中你的应用的签名中,注意你手机上的应用跟网站上申请的应用包名要一致,签名也要一致。
以下是相关平台的注册网址:
腾讯开放平台,地址 http://open.qq.com/
微信开放平台,地址 https://open.weixin.qq.com/
2、下载分享要用到的相关jar包,导入你工程中的libs文件中(直接复制粘贴进去)
到http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD中下载Android SDK后解压,将jar文件内的mta-sdk-1.6.2.jar和open_sdk_r5276.jar文件拷贝到你工程的libs文件中。
到https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN下载android开发工具包,解压后将libs文件中的libammsdk.jar拷贝到你的工程libs文件中。
导入这些包之后,你就可调用QQ分享和微信分享相关接口了。
二、AndroidManifest.xml文件配置
1、在你的工程的AndroidManifest.xml配置文件中添加如下代码
<!-- 以下是QQ和Qzone分享相关配置 -->
- <activity
- android:name="com.tencent.tauth.AuthActivity"
- 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="tencent填你审核通过的APPID" />
- </intent-filter>
- </activity>
- <activity
- android:name="com.tencent.connect.common.AssistActivity"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 以下是微信分享相关配置 -->
- <activity
- android:name=".wxapi.WXEntryActivity"
- android:configChanges="keyboardHidden|orientation|screenSize"
- android:exported="true"
- android:screenOrientation="portrait"
- android:theme="@android:style/Theme.Translucent.NoTitleBar" />
2、添加权限
- <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.WRITE_EXTERNAL_STORAGE" />
三、ShareUtil工具类(完整代码如下:)
- import java.util.ArrayList;