第三方登录和分享(举个“栗子”QQ)

本人这个有一个小的缺陷,那就是建自得项目的时候,必须用Umeng的包名
com.umeng.soexample,但是不会影响整体的效果,能够简单的实现第三方
好啦,现在开战啦

1.创建自己的项目,改包名

com.umeng.soexample

2.导入jar包(8个)

SecurityEnvSDK-release-1.1.0.jar
umeng-common-1.5.4.jar
umeng-share-core-6.9.3.jar
umeng-share-QQ-simplify-6.9.3.jar
umeng-share-wechat-simplify-6.9.3.jar
umeng-shareboard-widget-6.9.3.jar
umeng-sharetool-6.9.3.jar
utdid4all-1.1.5.3_proguard.jar

3.写咱们的APP

package com.umeng.soexample;

import android.app.Application;

import com.umeng.commonsdk.UMConfigure;
import com.umeng.socialize.PlatformConfig;
import com.umeng.socialize.UMShareAPI;

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();


        UMConfigure.init(this, "5a12384aa40fa3551f0001d1"
                , "umeng", UMConfigure.DEVICE_TYPE_PHONE, "");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0

        UMConfigure.setLogEnabled(true);//打印Log日志

        UMShareAPI.init(getApplicationContext(), "5a12384aa40fa3551f0001d1");

        PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");


    }


}

4.MainActivity

package com.umeng.soexample;

import android.Manifest;
import android.content.Intent;
import android.os.Build;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.umeng.qq.handler.UmengQQHandler;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareConfig;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;

import java.util.Iterator;
import java.util.Map;

import static com.umeng.commonsdk.proguard.g.U;

public class MainActivity extends AppCompatActivity {

    private UMShareListener umShareListener;
    private UMAuthListener authListener;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//        动态权限问题
//        if (Build.VERSION.SDK_INT >= 23) {
//            String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CALL_PHONE, Manifest.permission.READ_LOGS, Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.SET_DEBUG_APP, Manifest.permission.SYSTEM_ALERT_WINDOW, Manifest.permission.GET_ACCOUNTS, Manifest.permission.WRITE_APN_SETTINGS};
//            ActivityCompat.requestPermissions(this, mPermissionList, 123);
//        }


        //控件
        TextView btnTxt = findViewById(R.id.btn_txt);
        Button btnLogin = findViewById(R.id.btn_login);

        //点击  分享
        btnTxt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                UMImage image = new UMImage(MainActivity.this, R.drawable.ic_launcher_background);//资源文件
                image.setThumb(image);
                new ShareAction(MainActivity.this).withMedia(image).
                        setDisplayList(SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN).
                        setCallback(umShareListener).open();

            }
        });

        //确认登录
        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                UMShareAPI.get(MainActivity.this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, authListener);


            }
        });

        //分享监听
        umShareListener = new UMShareListener() {
            @Override
            public void onStart(SHARE_MEDIA share_media) {

            }

            @Override
            public void onResult(SHARE_MEDIA share_media) {
                Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(SHARE_MEDIA share_media, Throwable throwable) {
                Toast.makeText(MainActivity.this, throwable.toString(), Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onCancel(SHARE_MEDIA share_media) {
                Toast.makeText(MainActivity.this, "sorry,点击了取消", Toast.LENGTH_SHORT).show();

            }


        };
        //身份验证
        authListener = new UMAuthListener() {

            @Override
            public void onStart(SHARE_MEDIA share_media) {

            }

            @Override
            public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                //遍历QQ信息
//                final Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
//                while (iterator.hasNext()) {
//                    final Map.Entry<String, String> entry = iterator.next();
//                    System.out.println("key:" + entry.getKey() + "  key:" + entry.getValue());
//                }

            }

            @Override
            public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {

            }

            @Override
            public void onCancel(SHARE_MEDIA share_media, int i) {

            }
        };


    }


    @Override
    public void onRequestPermissionsResult
            (int requestCode, String permissions[], int[] grantResults) {

    }


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


}

5.清单文件

(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.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

(2) Activity

<!-- 微信 -->

        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            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="tencent100424468" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

(3) 咱们的App千万别忘了注册哦
咱们的App千万别忘了注册哦
咱们的App千万别忘了注册哦

android:name=".App"

6.各种资源驾到
(1)drawable


ic_launcher_background.xml
umeng_socialize_back_icon.png
umeng_socialize_btn_bg.xml
umeng_socialize_copy.png
umeng_socialize_copyurl.png
umeng_socialize_delete.png
umeng_socialize_edit_bg.xml
umeng_socialize_fav.png
umeng_socialize_menu_default.png
umeng_socialize_more.png
umeng_socialize_qq.png
umeng_socialize_qzone.png
umeng_socialize_share_music.png
umeng_socialize_share_video.png
umeng_socialize_share_web.png
umeng_socialize_wechat.png
umeng_socialize_wxcircle.png

(2)layout


activity_main.xml
//友情提示,自己的主布局,别搞错啦
activity_umeng.xml
activity_wxentry.xml
socialize_share_menu_item.xml
umeng_socialize_oauth_dialog.xml
umeng_socialize_share.xml

(3)values

colors.xml
strings.xml
styles.xml
umeng_socialize_shareview_strings.xml
umeng_socialize_style.xml

好啦,到这里咱们将告一段落啦,上面的资源见GitHub
https://github.com/xuezhimin/-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值