Android进阶之路Android开发经验谈Android开发

友盟SDK实现微信登录

2019-08-22  本文已影响5人  手指乐
  1. 在友盟后台新建产品,获取Appkey
  2. 下载社会化分享 SDK(包含分享、登录功能)
  3. 解压后,把common、share/main下面的所有jar拷贝到工程的lib目录下,所有res资源拷贝到工程的对应目录下,把share/platforms下面所需平台的jar拷贝到工程的lib目录下,res资源拷贝到工程的对应目录下
  4. 在项目application类中初始化umeng和微信:
 public void onCreate() {
        super.onCreate();
        UMConfigure.init(this,
                "xxxxx",//友盟appkey
                "umeng",
                UMConfigure.DEVICE_TYPE_PHONE,"");

        PlatformConfig.setWeixin("xxx",//微信appid
                "xxx");//微信AppSecret
    }
  1. 加入权限声明:
<uses-permission android:name="android.permission.INTERNET"/>
    <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"/>

如果targetSdkVersion大于22,还需要动态申请权限:

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);
              }
  1. 在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity

WXCallbackActivity是umeng sdk提供的,WXEntryActivity不需要写任何额外代码

  1. 配置Android Manifest XML,加入:
 <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
  1. 响应微信登录点击按钮:
public void onLogin(View view) {
        UMShareAPI.get(this).getPlatformInfo(this, SHARE_MEDIA.WEIXIN, new UMAuthListener() {
            @Override
            public void onStart(SHARE_MEDIA share_media) {
                Log.e("bp","onStart");
            }

            @Override
            public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                Log.e("bp","onComplete");
            }

            @Override
            public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
                Log.e("bp","onError");
            }

            @Override
            public void onCancel(SHARE_MEDIA share_media, int i) {
                Log.e("bp","onCancel");
            }
        });
    }
上一篇 下一篇

猜你喜欢

热点阅读