友盟第三方分享、登陆(登陆后传递登陆信息)

来源:互联网 发布:linux查看所有service 编辑:程序博客网 时间:2024/05/05 23:19

###  首先下载sdk把umeng_android_social_sdk_5.1.2_custom目录下面的main中 libs和res导入到新建的项目中,再把platforms里面的qq_qzone中libs(v4包千万别导入,不然会报错),res里面的4张图片放到项目中


###  配置文件中复制以下代码


<activity           
android:name="com.umeng.socialize.editorpage.ShareActivity"
android:theme="@style/Theme.UMDefault"
android:excludeFromRecents="true"/>


<meta-data
android:name="UMENG_APPKEY"
android:value="4eaee02c527015373b000003" >
</meta-data>



<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" />




<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" />



###   新建一个类 继承 Application  并重写onCreate()方法, 在清单文件application中配置 android:name="这里是类的全路径名"


       // QQ和Qzone appid appkey

PlatformConfig.setQQZone("100424468",
                "c7394704798a158208a74ab60104f0ba");
 

####################  布局里面


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="share"
        android:text="分享" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="103dp"
        android:onClick="login"
        android:text="登陆" />

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:background="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/button1"
        android:text="姓名" />

</RelativeLayout>


###  MainActivity

public class MainActivity extends ActionBarActivity {
    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 };
    private UMShareAPI mShareAPI;
    private ImageView iv;
    private TextView tv;
    private String name;
    private String url;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mShareAPI = UMShareAPI.get(this);
        initView();
    }

    private void initView() {
        iv = (ImageView) findViewById(R.id.iv);
        tv = (TextView) findViewById(R.id.tv);

    }

    // 分享
    public void share(View v) {
        UMImage image = new UMImage(MainActivity.this, R.drawable.ic_logo);
        new ShareAction(this).setDisplayList(displaylist).withText("呵呵")
                .withTitle("title").withTargetUrl("http://www.baidu.com")
                .withMedia(image).setListenerList(new UMShareListener() {
                    @Override
                    public void onResult(SHARE_MEDIA platform) {
                        Toast.makeText(MainActivity.this, platform + " 分享成功啦",
                                Toast.LENGTH_SHORT).show();
                    }

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

                    @Override
                    public void onCancel(SHARE_MEDIA platform) {
                        Toast.makeText(MainActivity.this, platform + " 分享取消了",
                                Toast.LENGTH_SHORT).show();
                    }
                }).open();

    }

    // 登陆
    public void login(View v) {

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

                mShareAPI.getPlatformInfo(MainActivity.this, platform,
                        new UMAuthListener() {
                            @Override
                            public void onComplete(SHARE_MEDIA platform,
                                    int action, Map<String, String> data) {
                                Toast.makeText(getApplicationContext(),
                                        "Authorize succeed", Toast.LENGTH_SHORT)
                                        .show();

                                for (String key : data.keySet()) {
                                    System.out.println(key + "======="
                                            + data.get(key));
                                    name = data.get("screen_name");
                                    url = data.get("profile_image_url");
                                }
                                tv.setText(name);
                                // ImageLoader加载图片
                                ImageLoader imageLoader = ImageLoader
                                        .getInstance();
                                imageLoader.init(ImageLoaderConfiguration
                                        .createDefault(MainActivity.this));
                                imageLoader.displayImage(url, iv);

                            }

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

            }

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

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









































0 0
原创粉丝点击