微信登录和微信支付现在大部分APP都会使用的到。首先需要在微信开放平台注册应用。
1、添加依赖
compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
2、在mainfest文件中添加权限
在Android6.0以上需动态申请
<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"/>
3、注册微信
在全局Application类MyApplication中注册微信
/**
* 全局Application
*/
public class MyApplication extends Application {
private static Context context;
public static IWXAPI mWXapi;
public String WX_APP_ID = "你自己的appid";
@Override
public void onCreate() {
super.onCreate();
//向微信注册
registerToWX();
}
private void registerToWX() {
mWXapi = WXAPIFactory.createWXAPI(context, WX_APP_ID, false);
mWXapi.registerApp(WX_APP_ID);
}
public static Context getContext() {
return context;
}
}
在发起登录的onclick方法中
//微信登录页
private void wxLogin() {
if (!MyApplication.mWXapi.isWXAppInstalled()) {
Toast.makeText(this, "您还未安装微信客户端", Toast.LENGTH_SHORT).show();
return;
}
final SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "skit_wx_login";//这个字段可以任意更改
MyApplication.mWXapi.sendReq(req);
}
4、微信回调
在自己项目的包名下创建一个package,取名叫wxapi,并在该包下创建一个类名为WXEntryActivity的类。(注:包名和类名必须为这两个,自己的包名可以看自己的maninfest文件,比如你的包名是com.test,则这个包的全名则为com.text.wxapi)。
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private static final String WX_APP_ID = "你自己的appid";
private static final Stri