今天没事,写一下Android集成友盟的分享吧
集成友盟其实官网文档很详细了,一步一步的很容易集成:
一、进入友盟官网(没有账号的进行注册),注册完后点击U-Share,然后点创建新应用,会生成AppKey,然后点击去集成,可以下载sdk(umeng_android_social_sdk_6.4.4_custom)到本地;
二、把压缩包解压,找到一个名为:“友盟集成工具”的 .jar 文件,点击如下图:
上图我选择了QQ、微信和新浪的完整版,大家可以根据自己的需求进行集成
点击ok就会生成一个文件夹:umeng_integratetool_result 点开后结构如下:
把这四个文件夹里面的内容都拷贝到自己Android Studio的相对应的位置,注意libs文件夹下一定要建立依赖
三、都拷贝完成后,我们开始在studio清单文件里面进行相关友盟和分享到各个平台的配置:
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.READ_LOGS" /> <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.SET_DEBUG_APP" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />2.配置要分享到的平台,以QQ、微信和新浪为例:
//新浪 <activity android:name=".WBShareActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait"> <intent-filter> <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> intent-filter> activity> <activity android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser" android:configChanges="keyboardHidden|orientation" android:exported="false" android:windowSoftInputMode="adjustResize" /> //微信 <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="tencent******" /> intent-filter> activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> //友盟的appkey <meta-data android:name="UMENG_APPKEY" android:value="******" />注意1:QQ需要填写腾讯开放平台的AppId
<data android:scheme="tencent******" />
tencent后面跟的******是自己的AppId
注意2:友盟的value的值填写友盟的自己应用的AppKey
android:value="******"value的值就是AppKey
这样清单文件基本都配置完了
四、初始化分享到的各个平台,创建一个类如MyApplication 继承Application,在MyApplication中:
//对分享的各个平台的key进行配置 PlatformConfig.setWeixin("***", "******"); PlatformConfig.setQQZone("***", "******"); PlatformConfig.setSinaWeibo("***", "******", "http://open.weibo.com/apps/***/privilege/oauth");各个平台的分享到各个社交平台的appKey获取方法:
http://bbs.mob.com/thread-275-1-1.html
在各个平台创建应用,拿到 Id和Key即可
注意:新浪微博需要填写分享回调页面:
http://open.weibo.com/apps/***/privilege/oauth
填写上面的回调网址即可,要把里面的一串数字修改为自己应用的appId
五、在代码中的使用:
在需要分享的类里面调用:
//分享的方法 public void share() { //分享的图片 UMImage thumb = new UMImage(this, R.drawable.thumbnail); //分享链接 UMWeb web = new UMWeb("***"); web.setTitle("***");//标题 web.setThumb(thumb); //缩略图 web.setDescription("***");//描述 new ShareAction(MainActivity.this).withText("") .setDisplayList(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA) .withMedia(web) .setCallback(new UMShareListener() { @Override public void onStart(SHARE_MEDIA share_media) { } @Override public void onResult(SHARE_MEDIA share_media) { MyToast.showToast(MainActivity.this,"分享成功!").show(); } @Override public void onError(SHARE_MEDIA share_media, Throwable throwable) { MyToast.showToast(MainActivity.this,"分享失败!").show(); } @Override public void onCancel(SHARE_MEDIA share_media) { MyToast.showToast(MainActivity.this,"分享取消!").show(); } }).open(); }然后不要忘记重写分享成功后的回调
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); }这样友盟的分享功能就实现了
点击分享的话会弹出分享面板如下: