Android 友盟分享详细集成过程及所遇问题解决,android
最近项目需要针对微信、朋友圈、QQ、QQ空间集成友盟分享的功能,说实话,我也是第一次做,期间碰到过很多问题,这篇随笔就来写一下我是怎么集成友盟分享的,还有碰到哪些问题,都是怎样解决的!
其实集成友盟并不是很难,跟着集成文档一步一步走下来就可以,而且下载的友盟SDK会附带Demo,但是Demo中有很多东西是用不上的,所以就需要我们选择性的摘取有用的部分!
如需转载请注明出处:http://www.cnblogs.com/upwgh/p/6382085.html
1-获取友盟Appkey
如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它.
如果你尚未在友盟注册开发者账号,需要先注册,注册之后登录你的账号,点击添加新应用,填写完应用基本信息后,将进入"下载SDK并添加代码"页面,此页面即可得到Appkey。
2-下载SDK并解压到本地
到友盟官网下载最新版本U-Share SDK,现在的版本是v6.2.2
因为项目中只需要集成微信、朋友圈、QQ、QQ空间,所以只勾选了这两项,微信完整版是带有支付功能,没有支付功能的话只需要勾选精简版就可以了。
接下来就到我们的项目中了
3-环境配置(AndroidManifestXml)
3-1权限配置
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
3-2注册相关的Activity
微信:
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
qq完整版:
<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="tencent100424468" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/>
注意:这里要放自己项目在QQ开放平台的id,而且前面的tencent是一定不能省略的,否则在运行的时候,会报QQ配置错误的问题。
3-3友盟Appkey及相关第三方key配置
在AndroidManifest.xml中设置友盟Appkey
<meta-data android:name="UMENG_APPKEY" android:value="561cae6ae0f55abd990035bf"> </meta-data>
在Application中配置第三方平台的key
{
//微信和QQ开放平台对应的AppId和Appkey PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3"); PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); }
在application中初始化sdk,这个初始化最好放在application的程序入口中,防止意外发生:
public void onCreate() { super.onCreate(); //开启debug模式,方便定位错误,具体错误检查方式可以查看http://dev.umeng.com/social/android/quick-integration的报错必看,正式发布,请关闭该模式 Config.DEBUG = true; UMShareAPI.get(this); }
4-代码实现
4-1、解压下载好的SDK,将main和platforms下面的libs里面的jar包导入到项目中(复制粘贴。。。),并添加依赖。
4-2、包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity。这里注意一定是包名路径下,例如我的包名是com.umeng.soexample,则配置如下:(需要注意,如果使用精简版WXCallbackActivity的路径为com.umeng.weixin.callback.WXCallbackActivity,如果使用完整版路径是com.umeng.socialize.weixin.view.WXCallbackActivity)
4-3、功能代码(代码部分只贴出部分重点内容,如有疑问请留言)
4-3-1 分享会掉监听
//分享回调 private UMShareListener umShareListener = new UMShareListener() { @Override public void onResult(SHARE_MEDIA platform) { Log.d("plat","platform"+platform); ToastUtil.showToast("分享成功"); // if (platform.toString().equals("QQ")){ // ToastUtil.showToast("手机QQ分享成功"); // }else if (platform.toString().equals("QZONE")){ // ToastUtil.showToast("QQ空间分享成功"); // }else if (platform.toString().equals("WEIXIN")){ // ToastUtil.showToast("微信好友分享成功"); // }else if (platform.toString().equals("WEIXIN_CIRCLE")){ // ToastUtil.showToast("微信朋友圈分享成功"); // } } @Override public void