您的位置:首页 > 其它

友盟第三方登录和分享

2016-06-28 20:54 387 查看
1.进入友盟页面,点击最上面产品中的分享。

2.点击分享页面的sdk及文档下的安卓图标。

3.点击上面的SDK下载,下载里面的SDK v6.1.2,下面的选型全选,上面的图标,想分享到那个软件就选哪个软件。

4.将3.下载并安装里

AndroidManifest配置下面的代码复制下来,粘贴到AndroidManifest.xml文件里。
<activityandroid:name="com.umeng.socialize.editorpage.ShareActivity"android:theme="@style/Theme.UMDefault"android:excludeFromRecents="true"/>
5.解压下载的SDK包,将文件里的main文件里的lib和res文件夹放入所做的项目里。
6.将AndroidManifest配置-------设置友盟的appid下面的代码粘贴到AndroidManifest.xml文件里。
<meta-dataandroid:name="UMENG_APPKEY"android:value="4eaee02c527015373b000003"
></meta-data>

7.
将AndroidManifest配置-------设置友盟的appid-----------设置权限下面的权限粘贴到AndroidManifest.xml文件中。

<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.INTERNET" /><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" />
8.将自己要分享的平台的Activity放入到AndroidManifest.xml文件中。
//微信平台
<activityandroid:name="com.umeng.soexample.wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar"
/>

9.在友盟集合文档第四点初始化配置下面的4.1的代码放入Appcliation类中。
PlatformConfig.setWeixin("wx967daebe835fbeac","5bb696d9ccd75a38c8a0bfe0675559b3");//微信
appid appsecretPlatformConfig.setSinaWeibo("3921700954","04b48b094faeb16683c32669824ebdad");//新浪微博
appkey appsecretPlatformConfig.setQQZone("100424468","c7394704798a158208a74ab60104f0ba");//
QQ和Qzone appid appkeyPlatformConfig.setAlipay("2015111700822536");//支付宝
appidPlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");//易信
appkeyPlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi","MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");//Twitter
appid appkeyPlatformConfig.setPinterest("1439206");//Pinterest
appidPlatformConfig.setLaiwang("laiwangd497e70d4","d497e70d4c3e4efeab1381476bac4c5e");//来往
appid appkey

10.登录:将第三方登录下的代码放入到代码里。

首先获取UMShareAPI

mShareAPI = UMShareAPI.get(this);


选取需要授权的平台,并进行授权,其中umAuthLisrener是回调监听器,需要开发者根据需求重新定义
SHARE_MEDIA platform = SHARE_MEDIA.SINA;
mShareAPI.doOauthVerify(this, platform, umAuthListener)

private UMAuthListener umAuthListener = new UMAuthListener() {
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
Toast.makeText( getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();
}

@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
}

@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
}
};

[/code]

对于删除授权使用的接口是

mShareAPI.deleteOauth(AuthActivity.this, platform, umdelAuthListener);


不难看出与授权的参数是一样的。

注意要重写
onActivityResult()

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mShareAPI.onActivityResult(requestCode, resultCode, data);
}

11.获取登录后的信息

mShareAPI = UMShareAPI.get(this);


SHARE_MEDIA
platform = SHARE_MEDIA.SINA; (SHARE_MEDIA platform = SHARE_MEDIA.QQ;第三方软件是什么,SHARE_MEDIA.第三方软件名称)


初始化UMShareAPI,然后进行用户信息获取:

mShareAPI.getPlatformInfo(UserinfoActivity.this, platform, umAuthListener);


注意必须在调用授权接口
mShareAPI.doOauthVerify(this, platform, umAuthListener)
 之后才可以获取用户信息,建议在doOauthVerify方法完成的onComplete方法中调用获取用户信息方法,返回的所有信息都在Map data)集合中获取

onActivityResult()@OverrideprotectedvoidonActivityResult(int
requestCode, int
resultCode, Intent data){super.onActivityResult(requestCode,
resultCode, data); mShareAPI.onActivityResult(requestCode, resultCode, data); }

//获取qq上的数据
public void ll(SHARE_MEDIA platform)
{
mShareAPI.getPlatformInfo(getActivity(), platform, new UMAuthListener() {

@Override
public void onError(SHARE_MEDIA arg0, int arg1, Throwable arg2) {
// TODO Auto-generated method stub

}

@Override
public void onComplete(SHARE_MEDIA arg0, int arg1, Map<String, String> arg2) {
// TODO Auto-generated method stub
 
           //转换为set
           Set<String> keySet = arg2.keySet();
           //遍历循环,得到里面的key值----用户名,头像....
           for (String string : keySet) {
           
//打印下
           
Log.d("aa", string);
}
           //得到key值得话,可以直接的到value
String name = arg2.get("screen_name");
String url = arg2.get("profile_image_url");
/*ni1.setText(name);
iit.displayImage(url,ni);*/
}

@Override
public void onCancel(SHARE_MEDIA arg0, int arg1) {
// TODO Auto-generated method stub

}
});
}

12。分享

图片(本地资源引用)
UMImage image = new UMImage(ShareActivity.this,
BitmapFactory.decodeResource(getResources(), R.drawable.image));



6.1  默认shareboard:

final SHARE_MEDIA[] displaylist = new SHARE_MEDIA[]
{
SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.SINA,
SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,SHARE_MEDIA.DOUBAN
};
new ShareAction(this).setDisplayList( displaylist )
.withText( "呵呵" )
.withTitle("title")
.withTargetUrl("http://www.baidu.com")
.withMedia( image )
.setListenerList(umShareListener)
.open();




选取分享的平台,设定分享回调接口和内容,并执行share方法。 回调接口如下:
new UMShareListener() {
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(ShareActivity.this,platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
}

@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(ShareActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
}

@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(ShareActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();
}
};
//还可以这么写:将umShareListener改成 new UMShareListener() { @Override public void onResult(SHARE_MEDIA platform) { Toast.makeText(ShareActivity.this,platform + " 分享成功啦", Toast.LENGTH_SHORT).show(); } @Override public void onError(SHARE_MEDIA platform, Throwable t) { Toast.makeText(ShareActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show(); } @Override public void onCancel(SHARE_MEDIA platform) { Toast.makeText(ShareActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show(); } };[/code]

值得注意的是,分享也应该重写
onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get( this ).onActivityResult( requestCode, resultCode, data);
}


//分享的是哪个软件就在友盟下载的SDK里面platforms文件夹下面找到自己要分享的第三方软件的文件,将里面的lib和res文件夹粘贴到所做项目里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: