依赖
//微信SDK
implementation'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
清单配置(在<application>中间加入以下代码</application>)
<!--微信登录-->
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
创建wxapi的Activity
在你的包名下建一个子package叫wxapi,这个名字不能改,然后在里面新建 WXEntryActivity -> 微信登录/微信分享回调
WXEntryActivity中代码:
/**
* @Author : XiaoXred
* @Time : On 2020/11/20 11:08
* @Description : WXEntryActivity
*/
public class WXEntryActivity extends Activity implements IWXAPIEventHandler, CancelAdapt {
@Override
protected void onCreate(Bundle bundle) {
AppManager.getInstance().addActivity(this);
super.onCreate(bundle);
//接收到分享以及登录的intent传递handleIntent方法,处理结果
IWXAPI iwxapi = WXAPIFactory.createWXAPI(this, AppID, false);
iwxapi.handleIntent(getIntent(), this);
}
@Override
protected void onDestroy() {
super.onDestroy();
AppManager.getInstance().finishActivity(this);
}
@Override
public void onReq(BaseReq baseReq) {
}
@Override
public void onResp(BaseResp baseResp) {
//登录回调
}
//登录成功关闭
finish();
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED://用户拒绝授权
finish();
break;
case BaseResp.ErrCode.ERR_USER_CANCEL://用户取消
finish();
break;
default:
finish();
break;
}
}
}
在登录按钮调用
SendAuth.Req req =new SendAuth.Req();
req.scope ="snsapi_userinfo";
api.sendReq(req);