如有不懂,可联系qq:1043202454
- 账号的准备
1.友盟账号注册:http://www.umeng.com/
2.qq开发账号:http://open.qq.com/
3.微信开发账号:https://open.weixin.qq.com/
4.微博开发账号:http://open.weibo.com/
- 创建各平台下对应的app(四个平台四个相同app): 如图所示---这里只列出(友盟平台)
- 在四大平台下创建好应用后,需要获取两个重要的值 :
AppID和AppSecret--------很重要最好都复制在一个txt文件下,以遍后面填写
补刀:在对微博开发平台下,创建应用还需要配置一些信息:-----针对精简版,对于应用签名可以先在手机安装项目apk(必须安装不然获取不到应用签名)再用工具获取(地址: https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk)----->这里分为debug和release 两种版本的apk 同样包名,签名是不一样的,所以等项目上线得在重新获取应用签名,再到各个平台更改签名,不然不会吊起第三方登录平台.
开始集成友盟代码:
- 点击友盟下的U-share 下载sdk 选择平台:
- 选择好后,下载到本地打开文件夹:
然后打开界面是这样,根据提示去选择:
点击ok,此时目录会生成一个文件夹,这个文件夹就是你要集成到你项目中,文件夹包含src,layout,value等需要你一个一个对应的复制到你的工程中.
这里可能有人要吐槽了-----好麻烦是的,于是我把它弄成moudle 只要导入moudle,在依赖这个moudle就行了 连接地址:https://git.oschina.net/huagnzhibo123/moudle 请下载并使用umshare这个文件夹就是友盟集成三大平台的moudle
开始配置环境:
打开AS 创建一个app项目:
1.添加moulde:->在AS的界面下,选择File->new->import moudle 下选择下载好的umshare文件moudle:点击ok
2.项目依赖moudle:->右键项目->选择open moudle seting:按如下图操作添加umshare
到这里友盟已经集成,接下来就是配置各平台的appid和scret,以及清单文件的配置:
建立一个类App集成Aplication,初始化各平台key:
清单文件:
权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
activity:
<!--友盟key-->
<meta-data
android:name="UMENG_APPKEY"
android:value="换成你自己友盟appkey"></meta-data>
<!--友盟配置-->
<!--微信精简版-->
<activity
android:name="lixiaoqian.umshare.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.umeng.qq.tencent.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="1106007486" />
</intent-filter>
</activity>
<activity
android:name="com.umeng.qq.tencent.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!--微博精简版-->
<activity
android:name="com.umeng.socialize.editorpage.ShareActivity"
android:excludeFromRecents="true"
android:theme="@style/Theme.UMDefault" />
到这里所有配置已经完成,开始撸代码了:
登陆调用:(直接调用方法)
/**
* 吊起第三方登陆
* @param plant选择对应的平台 比如:SHARE_MEDIA.QQ等
*/
private void doOauth(SHARE_MEDIA plant) {
UMShareAPI mShareAPI = UMShareAPI.get(this);
mShareAPI.doOauthVerify(this, plant, new UMAuthListener{
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
//调用成功返回map的用户信息
}
@Override
public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
}
@Override
public void onCancel(SHARE_MEDIA share_media, int i) {
}
});
}
分享代码:(直接在点击实践中调用)
/**
* 分享逻辑,内容设置umWeb形式 直接使用友盟自带的分享面板 然后调用该方法shareContext就可以了
*/
public void shareContext() {
ShareBoardConfig config = new ShareBoardConfig();
NewsFind newsFind = App.newsFind;
String news_image_path = newsFind.getNews_image_path();
String[] split = news_image_path.split(":");
config.setShareboardPostion(ShareBoardConfig.SHAREBOARD_POSITION_BOTTOM);
config.setMenuItemBackgroundShape(ShareBoardConfig.BG_SHAPE_CIRCULAR);
config.setCancelButtonVisibility(true);
config.setTitleText("选择分享平台");
UMWeb umWeb = SetShareContent(newsFind.getNews_text_path(),newsFind.getNews_title(),Config.image_base+split[1]);
shareAction.withMedia(umWeb);
shareAction.open(config);
}