关闭

友盟第三方登录和分享

标签: 友盟第三方登陆和分享sdk
6369人阅读 评论(1) 收藏 举报
分类:

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文件中。

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  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.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();
        }
    };

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

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();        }    };

值得注意的是,分享也应该重写

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文件夹粘贴到所做项目里

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:75854次
    • 积分:1333
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:16篇
    • 译文:0篇
    • 评论:5条
    最新评论