app/src/main/java/com/moral/yunfushao/MainActivity.java
@@ -142,7 +142,9 @@ @Override protected void initData() { prepare(); //验证微信登陆 wxLoadingOutTime(); // prepare(); if (MainApp.theApp.bleManager != null) { if (MainApp.theApp.bleManager.isSupportBle()) { MainApp.theApp.bleManager.enableBluetooth(); @@ -155,6 +157,13 @@ getAd(); } /** * 判断是否已经是最后期限 */ private void wxLoadingOutTime() { } @Override protected void processClick(View view) { app/src/main/java/com/moral/yunfushao/MainApp.java
@@ -47,10 +47,12 @@ OkGo.getInstance().setCookieStore(new PersistentCookieStore()); if (sharedPreferencesUtil == null) { sharedPreferencesUtil = new SharedPreferencesUtil(this); sharedPreferencesUtil = SharedPreferencesUtil.getUtil(this); } userId = sharedPreferencesUtil.getUserid(); if (MainApp.theApp.sharedPreferencesUtil.getVoiceType() == 0) { AppConfig.voideUrl1 = "http://yfsapi.7drlb.com/video/boy/music.mp3"; AppConfig.voideUrl2 = "http://yfsapi.7drlb.com/video/boy/music1.mp3"; app/src/main/java/com/moral/yunfushao/activity/LoginActivity.java
@@ -1,5 +1,6 @@ package com.moral.yunfushao.activity; import android.animation.ObjectAnimator; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; @@ -36,6 +37,7 @@ private TextView tv_forget, tv_register; private EditText et_phone, et_pwd; private IWXAPI iwxapi; private ObjectAnimator animator; @Override protected void getBundleExtras(Bundle extras) { @@ -77,8 +79,24 @@ et_phone = findView(R.id.et_phone); et_pwd = findView(R.id.et_pwd); weixinlogin = findView(R.id.weixinlogin); // et_phone.setText("18362724160"); // et_pwd.setText("123456"); initAnimator(); } private void initAnimator() { // ObjectAnimator an = ObjectAnimator.ofFloat(bt_sure, "translationX", 500f, 0f); // an.start(); //// ObjectAnimator translationY = ObjectAnimator.ofFloat(bt_sure, "rotation", 360f, 0f); // ObjectAnimator scaleY = ObjectAnimator.ofFloat(bt_sure, "scaleY", 0f, 1f); // ObjectAnimator scaleX = ObjectAnimator.ofFloat(bt_sure, "scaleX", 0f, 1f); // // AnimatorSet oo = new AnimatorSet(); // oo.playTogether(scaleY, scaleX); // oo.setDuration(500); // oo.start(); } @Override @@ -86,6 +104,7 @@ bt_sure.setOnClickListener(this); tv_forget.setOnClickListener(this); tv_register.setOnClickListener(this); weixinlogin.setOnClickListener(this); } @Override app/src/main/java/com/moral/yunfushao/activity/SplashActivity.java
@@ -5,18 +5,30 @@ import android.text.TextUtils; import android.view.View; import com.lzy.okgo.cache.CacheMode; import com.moral.andbrickslib.utils.GsonUtil; import com.moral.andbrickslib.utils.NetworkUtil; import com.moral.andbrickslib.utils.StatusBarUtil; import com.moral.yunfushao.wxapi.WXEntryActivity; import com.moral.yunfushao.wxapi.data.AccessTokenBean; import com.moral.yunfushao.wxapi.data.TokenEffectivenessBean; import com.moral.yunfushao.MainActivity; import com.moral.yunfushao.MainApp; import com.moral.yunfushao.R; import com.moral.yunfushao.base.BaseActivity; import com.moral.yunfushao.common.WXConstants; import com.moral.yunfushao.httputils.HttpCallBack; import com.moral.yunfushao.httputils.WXHttpUtil; import com.moral.yunfushao.utils.SharedPreferencesUtil; /** * Created by haijiang on 2017/2/20. */ public class SplashActivity extends BaseActivity implements Runnable{ public class SplashActivity extends BaseActivity implements Runnable { private AccessTokenBean bean = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -68,13 +80,89 @@ public void run() { try { Thread.sleep(1000); } catch(InterruptedException e) { } catch (InterruptedException e) { e.printStackTrace(); } if(!TextUtils.isEmpty(MainApp.userId)){ bean = SharedPreferencesUtil.getUtil(this).getWXToken(); if (NetworkUtil.isAvailable(this)) { //网络可用状态是否 if (bean == null) { goHome(); //非微信登陆 } else { //微信登陆 // checkWXLogin(); checkTokenEffective(); } } } /** * 判断是否token有效 */ private void checkTokenEffective() { //https:api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID String url = "https:api.weixin.qq.com/sns/auth?access_token=" + bean.getAccess_token() + "&openid=" + WXConstants.APP_ID; WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { TokenEffectivenessBean bean = GsonUtil.toObj(msg, TokenEffectivenessBean.class); if (bean.getErrcode() == 0) { //成功授权 checkWXLogin(); } } @Override public void showLoadingDialog() { } @Override public void onFail(int errno, String s) { //无效直接 goHome(); } }); } /** * 检查是否登陆失效 */ private void checkWXLogin() { // String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid= " + WXConstants.APP_ID + "&secret=" + "应用密钥" + "&code="+ WXEntryActivity.code + "&grant_type=authorization_code"; // String url = "https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID"; WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { AccessTokenBean accessTokenBean = GsonUtil.toObj(msg, AccessTokenBean.class); } @Override public void showLoadingDialog() { // } @Override public void onFail(int errno, String s) { goHome(); } }); } private void goHome() { if (!TextUtils.isEmpty(MainApp.userId)) { Intent intent = new Intent(this, MainActivity.class); startActivity(intent); }else{ } else { Intent intent = new Intent(this, LoginActivity.class); startActivity(intent); } app/src/main/java/com/moral/yunfushao/common/WXConstants.java
New file @@ -0,0 +1,18 @@ package com.moral.yunfushao.common; /** * @author : chenqi. * @e_mail : 1650699704@163.com. * @create_time : 2018/11/26. * @Package_name: pregnancy_guard_android */ public class WXConstants { // APP_ID 替换为你的应用从官方网站申请到的合法appId public static final String APP_ID = "wxd930ea5d5a258f4f"; public static class ShowMsgActivity { public static final String STitle = "showmsg_title"; public static final String SMessage = "showmsg_message"; public static final String BAThumbData = "showmsg_thumb_data"; } } app/src/main/java/com/moral/yunfushao/httputils/WXHttpUtil.java
New file @@ -0,0 +1,41 @@ package com.moral.yunfushao.httputils; import com.lzy.okgo.OkGo; import com.lzy.okgo.cache.CacheMode; import com.lzy.okgo.callback.StringCallback; import okhttp3.Call; import okhttp3.Response; /** * @author : chenqi. * @e_mail : 1650699704@163.com. * @create_time : 2018/11/26. * @Package_name: pregnancy_guard_android */ public class WXHttpUtil { public static void doGet(String url, CacheMode cacheMode, final HttpCallBack httpCallBack) { OkGo.get(url) .cacheKey(String.valueOf(url)) .tag(String.valueOf(url)) .cacheMode(cacheMode) .execute(new StringCallback() { @Override public void onSuccess(String s, Call call, Response response) { //如何保存accessTokenBean if (httpCallBack != null) { httpCallBack.onSuccess(response.message(), s); } } @Override public void onError(Call call, Response response, Exception e) { super.onError(call, response, e); if (httpCallBack != null) { httpCallBack.onFail(response.code(), null); } //{"errcode":40029,"errmsg":"invalid code"} } }); } } app/src/main/java/com/moral/yunfushao/model/User.java
@@ -7,16 +7,16 @@ */ public class User { @JSONField(name="_id") @JSONField(name = "_id") private String _id;//用户id private String phone; //手机号码 private String encypt; //随机码 private String password; //密码 private String nickname; //用户昵称 private int refresh_frequency; //刷新频率 private int is_open_upload; //是否开启上传 private int is_lock; //是否被锁定,0表示未锁定,1表示锁定 private int video; // private String phone; //手机号码 private String encypt; //随机码 private String password; //密码 private String nickname; //用户昵称 private int refresh_frequency; //刷新频率 private int is_open_upload; //是否开启上传 private int is_lock; //是否被锁定,0表示未锁定,1表示锁定 private int video; // public String get_id() { return _id; app/src/main/java/com/moral/yunfushao/ui/PanelView.java
@@ -14,7 +14,6 @@ import android.util.AttributeSet; import android.util.TypedValue; import android.view.View; import android.view.animation.Animation; import com.moral.yunfushao.R; @@ -187,8 +186,7 @@ postInvalidate(); } }); anim.setDuration(3000L); anim.setRepeatCount(Animation.INFINITE); anim.setDuration(500L); anim.start(); } // app/src/main/java/com/moral/yunfushao/utils/SharedPreferencesUtil.java
@@ -4,190 +4,250 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import com.moral.andbrickslib.utils.GsonUtil; import com.moral.yunfushao.wxapi.data.AccessTokenBean; import com.moral.yunfushao.MainApp; import com.moral.yunfushao.model.User; public class SharedPreferencesUtil { private Context mContext; public final static String SP_LOGIN_USER_KEY = "login_user"; public final static String SP_BLE = "ble"; public SharedPreferencesUtil(Context context) { this.mContext = context; } private static Context mContext = null; public final static String SP_LOGIN_USER_KEY = "login_user"; public final static String SP_BLE = "ble"; /** * 保存蓝牙设备信息 * @param mac public static SharedPreferencesUtil getUtil(Context context) { mContext = context; return Instants.sharedPreferencesUtil; } public static class Instants { public static SharedPreferencesUtil sharedPreferencesUtil = new SharedPreferencesUtil(); } /** * 获取登陆模式,手机登陆和微信登陆 * * @return */ public void saveBLE(String mac){ SharedPreferences preferences = mContext.getSharedPreferences(SP_BLE, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("mac", mac); editor.commit(); } public static boolean getLoginModel() { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); return preferences.getBoolean("wx", false); } public String getBLE(){ SharedPreferences preferences = mContext.getSharedPreferences(SP_BLE, Context.MODE_PRIVATE); String mac = preferences.getString("mac",""); return mac; } /** * 保存微信登陆Token */ public void saveWXToken(AccessTokenBean bean) { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor edit = preferences.edit(); edit.putString("token_wx", GsonUtil.toStr(bean)); edit.commit(); } /** * 保存微信登陆Token */ public AccessTokenBean getWXToken() { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); String s = preferences.getString("token_wx", null); if (s == null) { return null; } else return GsonUtil.toObj(s, AccessTokenBean.class); } /** * 保存微信登陆Token */ public void removeWXToken() { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor edit = preferences.edit(); edit.putString("token_wx", null); } public void saveLoginInfo(User loginUser){ SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("id",loginUser.get_id()); editor.putString("phone",loginUser.getPhone()); editor.putString("encypt",loginUser.getEncypt()); editor.putString("password",loginUser.getPassword()); editor.putString("nickname",loginUser.getNickname()); editor.putInt("refresh_frequency",loginUser.getRefresh_frequency()); editor.putInt("is_open_upload",loginUser.getIs_open_upload()); editor.putInt("is_lock",loginUser.getIs_lock()); editor.putInt("video",loginUser.getVideo()); editor.commit(); } /** * 保存蓝牙设备信息 * * @param mac */ public void saveBLE(String mac) { SharedPreferences preferences = mContext.getSharedPreferences(SP_BLE, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("mac", mac); editor.commit(); } public User getLoginInfo(){ SharedPreferences sp = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); User loginUserInfo = new User(); loginUserInfo.set_id(sp.getString("id","")); loginUserInfo.setEncypt(sp.getString("encypt","")); loginUserInfo.setPhone(sp.getString("phone","")); loginUserInfo.setPassword(sp.getString("password","")); loginUserInfo.setNickname(sp.getString("nickname","")); loginUserInfo.setRefresh_frequency(sp.getInt("refresh_frequency",10)); loginUserInfo.setIs_open_upload(sp.getInt("is_open_upload",1)); loginUserInfo.setIs_lock(sp.getInt("is_lock",0)); loginUserInfo.setVideo(sp.getInt("video",0)); return loginUserInfo; } public String getBLE() { SharedPreferences preferences = mContext.getSharedPreferences(SP_BLE, Context.MODE_PRIVATE); String mac = preferences.getString("mac", ""); return mac; } public String getUserid(){ SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); String userid = preferences.getString("id",""); return userid; } /** * 账户登陆 * 账户登陆清空微信登陆 * * @param loginUser */ public void saveLoginInfo(User loginUser) { removeWXToken(); SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("id", loginUser.get_id()); editor.putString("phone", loginUser.getPhone()); editor.putString("encypt", loginUser.getEncypt()); editor.putString("password", loginUser.getPassword()); editor.putString("nickname", loginUser.getNickname()); editor.putInt("refresh_frequency", loginUser.getRefresh_frequency()); editor.putInt("is_open_upload", loginUser.getIs_open_upload()); editor.putInt("is_lock", loginUser.getIs_lock()); editor.putInt("video", loginUser.getVideo()); editor.commit(); } public void setUpload(int is_open_upload){ SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("is_open_upload",is_open_upload); editor.commit(); } public User getLoginInfo() { SharedPreferences sp = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); User loginUserInfo = new User(); loginUserInfo.set_id(sp.getString("id", "")); loginUserInfo.setEncypt(sp.getString("encypt", "")); loginUserInfo.setPhone(sp.getString("phone", "")); loginUserInfo.setPassword(sp.getString("password", "")); loginUserInfo.setNickname(sp.getString("nickname", "")); loginUserInfo.setRefresh_frequency(sp.getInt("refresh_frequency", 10)); loginUserInfo.setIs_open_upload(sp.getInt("is_open_upload", 1)); loginUserInfo.setIs_lock(sp.getInt("is_lock", 0)); loginUserInfo.setVideo(sp.getInt("video", 0)); return loginUserInfo; } public void setVideo(int video){ SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("video",video); editor.commit(); } public void setRefreh(int refresh){ SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("refresh_frequency",refresh); editor.commit(); } public void exitLogin(){ SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("id",""); editor.putString("phone",""); editor.putString("encypt",""); editor.putString("password",""); editor.putString("nickname",""); editor.putInt("refresh_frequency",0); editor.putInt("is_open_upload",0); editor.putInt("is_lock",0); editor.putInt("video",0); editor.commit(); MainApp.theApp.userId=""; saveShowAd(""); } public String getUserid() { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); String userid = preferences.getString("id", ""); return userid; } /** * 保存是否第一次登陆 * @param flag */ public void saveFirstUse(int flag) { SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("firstUse", flag); editor.commit(); } public int getFirstUse() { SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", Context.MODE_PRIVATE); int firstUse = preferences.getInt("firstUse", 0); return firstUse; } public void setUpload(int is_open_upload) { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("is_open_upload", is_open_upload); editor.commit(); } public void setVideo(int video) { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("video", video); editor.commit(); } public void setRefreh(int refresh) { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("refresh_frequency", refresh); editor.commit(); } public void exitLogin() { SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("id", ""); editor.putString("phone", ""); editor.putString("encypt", ""); editor.putString("password", ""); editor.putString("nickname", ""); editor.putInt("refresh_frequency", 0); editor.putInt("is_open_upload", 0); editor.putInt("is_lock", 0); editor.putInt("video", 0); editor.commit(); MainApp.theApp.userId = ""; saveShowAd(""); } /** * 保存是否第一次登陆 * * @param flag */ public void saveFirstUse(int flag) { SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("firstUse", flag); editor.commit(); } public int getFirstUse() { SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", Context.MODE_PRIVATE); int firstUse = preferences.getInt("firstUse", 0); return firstUse; } public void saveShowAd(String time) { SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("time", time); editor.commit(); } public void saveShowAd(String time) { SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("time", time); editor.commit(); } public String getShowAd() { SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", Context.MODE_PRIVATE); String time = preferences.getString("time",""); return time; } public String getShowAd() { SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", Context.MODE_PRIVATE); String time = preferences.getString("time", ""); return time; } /** * 铃声 * @param video */ public void saveVideoList(String video) { SharedPreferences preferences = mContext.getSharedPreferences("videoInfo", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("video", video); editor.commit(); } /** * 铃声 * * @param video */ public void saveVideoList(String video) { SharedPreferences preferences = mContext.getSharedPreferences("videoInfo", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("video", video); editor.commit(); } public String getVideoList() { SharedPreferences preferences = mContext.getSharedPreferences("videoInfo", Context.MODE_PRIVATE); String video = preferences.getString("video",""); return video; } public String getVideoList() { SharedPreferences preferences = mContext.getSharedPreferences("videoInfo", Context.MODE_PRIVATE); String video = preferences.getString("video", ""); return video; } public void saveTest(String test) { SharedPreferences preferences = mContext.getSharedPreferences("test", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("test", test); editor.commit(); } public void saveTest(String test) { SharedPreferences preferences = mContext.getSharedPreferences("test", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("test", test); editor.commit(); } public String getTest() { SharedPreferences preferences = mContext.getSharedPreferences("test", Context.MODE_PRIVATE); String test = preferences.getString("test",""); return test; } public String getTest() { SharedPreferences preferences = mContext.getSharedPreferences("test", Context.MODE_PRIVATE); String test = preferences.getString("test", ""); return test; } public void saveVoiceType(int sex) { SharedPreferences preferences = mContext.getSharedPreferences("sex", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("sex", sex); editor.commit(); } public void saveVoiceType(int sex) { SharedPreferences preferences = mContext.getSharedPreferences("sex", Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt("sex", sex); editor.commit(); } public int getVoiceType() { SharedPreferences preferences = mContext.getSharedPreferences("sex", Context.MODE_PRIVATE); int test = preferences.getInt("sex",0); return test; } public int getVoiceType() { SharedPreferences preferences = mContext.getSharedPreferences("sex", Context.MODE_PRIVATE); int test = preferences.getInt("sex", 0); return test; } } app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java
New file @@ -0,0 +1,185 @@ package com.moral.yunfushao.wxapi; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.widget.Toast; import com.lzy.okgo.cache.CacheMode; import com.moral.andbrickslib.utils.GsonUtil; import com.moral.yunfushao.MainActivity; import com.moral.yunfushao.common.WXConstants; import com.moral.yunfushao.httputils.HttpCallBack; import com.moral.yunfushao.httputils.WXHttpUtil; import com.moral.yunfushao.model.User; import com.moral.yunfushao.wxapi.data.AccessTokenBean; import com.moral.yunfushao.wxapi.data.WXUserBean; import com.tencent.mm.opensdk.constants.ConstantsAPI; import com.tencent.mm.opensdk.modelbase.BaseReq; import com.tencent.mm.opensdk.modelbase.BaseResp; import com.tencent.mm.opensdk.modelmsg.SendAuth; import com.tencent.mm.opensdk.modelmsg.ShowMessageFromWX; import com.tencent.mm.opensdk.modelmsg.WXAppExtendObject; import com.tencent.mm.opensdk.modelmsg.WXMediaMessage; import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler; import com.tencent.mm.opensdk.openapi.WXAPIFactory; /** * @author : chenqi. * @e_mail : 1650699704@163.com. * @create_time : 2018/11/26. * @Package_name: pregnancy_guard_android */ public class WXEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI api; public static String code = ""; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, WXConstants.APP_ID, false); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq baseReq) { switch (baseReq.getType()) { case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX: goToGetMsg(); break; case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX: goToShowMsg((ShowMessageFromWX.Req) baseReq); break; default: break; } } @Override public void onResp(BaseResp baseResp) { String result; Toast.makeText(this, "baseresp.getType = " + baseResp.getType(), Toast.LENGTH_SHORT).show(); switch (baseResp.errCode) { case BaseResp.ErrCode.ERR_OK: code = ((SendAuth.Resp) baseResp).code; result = "授权成功"; checkWXLogin(); //用户同意 break; case BaseResp.ErrCode.ERR_USER_CANCEL: result = "发送取消"; break; case BaseResp.ErrCode.ERR_AUTH_DENIED: result = "发送被拒绝"; break; case BaseResp.ErrCode.ERR_UNSUPPORT: result = "不支持错误"; break; default: result = "发送返回"; break; } Toast.makeText(this, result, Toast.LENGTH_LONG).show(); } /** * 检查是否登陆失效 */ private void checkWXLogin() { String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid= " + WXConstants.APP_ID + "&secret=" + "应用密钥" + "&code=" + WXEntryActivity.code + "&grant_type=authorization_code"; WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { AccessTokenBean accessTokenBean = GsonUtil.toObj(msg, AccessTokenBean.class); if (accessTokenBean.getAccess_token() == null && accessTokenBean.getOpenid() == null) getUserInfor(accessTokenBean.getAccess_token(), accessTokenBean.getOpenid()); } @Override public void showLoadingDialog() { // } @Override public void onFail(int errno, String s) { } }); } /** * 获取到用户的信息 * * @param access_token * @param openid */ private void getUserInfor(String access_token, String openid) { String path = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid; WXHttpUtil.doGet(path, CacheMode.DEFAULT, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { WXUserBean bean = new WXUserBean(); User user = new User(); user.set_id(bean.getOpenid()); user.setNickname(bean.getNickname()); } @Override public void showLoadingDialog() { } @Override public void onFail(int errno, String s) { } }); } private void goToGetMsg() { Intent intent = new Intent(this, MainActivity.class); intent.putExtras(getIntent()); startActivity(intent); finish(); } private void goToShowMsg(ShowMessageFromWX.Req showReq) { WXMediaMessage wxMsg = showReq.message; WXAppExtendObject obj = (WXAppExtendObject) wxMsg.mediaObject; StringBuffer msg = new StringBuffer(); // 组织一个待显示的消息内容 msg.append("description: "); msg.append(wxMsg.description); msg.append("\n"); msg.append("extInfo: "); msg.append(obj.extInfo); msg.append("\n"); msg.append("filePath: "); msg.append(obj.filePath); Intent intent = new Intent(this, MainActivity.class); intent.putExtra(WXConstants.ShowMsgActivity.STitle, wxMsg.title); intent.putExtra(WXConstants.ShowMsgActivity.SMessage, msg.toString()); intent.putExtra(WXConstants.ShowMsgActivity.BAThumbData, wxMsg.thumbData); startActivity(intent); finish(); } } app/src/main/java/com/moral/yunfushao/wxapi/data/AccessTokenBean.java
New file @@ -0,0 +1,83 @@ package com.moral.yunfushao.wxapi.data; /** * @author : chenqi. * @e_mail : 1650699704@163.com. * @create_time : 2018/11/26. * @Package_name: pregnancy_guard_android * 微信登陆第二步:通过code获取access_token * 获取第一步的code后,请求以下链接获取access_token: * access_token 接口调用凭证 * expires_in access_token接口调用凭证超时时间,单位(秒) * refresh_token 用户刷新access_token * openid 授权用户唯一标识 * scope 用户授权的作用域,使用逗号(,)分隔 * unionid 当且仅当该移动应用已获得该用户的userinfo授权时,才会出现该字段 * */ public class AccessTokenBean { /** * access_token : ACCESS_TOKEN * expires_in : 7200 * refresh_token : REFRESH_TOKEN * openid : OPENID * scope : SCOPE * unionid : o6_bmasdasdsad6_2sgVt7hMZOPfL */ private String access_token; private int expires_in; private String refresh_token; private String openid; private String scope; private String unionid; public String getAccess_token() { return access_token; } public void setAccess_token(String access_token) { this.access_token = access_token; } public int getExpires_in() { return expires_in; } public void setExpires_in(int expires_in) { this.expires_in = expires_in; } public String getRefresh_token() { return refresh_token; } public void setRefresh_token(String refresh_token) { this.refresh_token = refresh_token; } public String getOpenid() { return openid; } public void setOpenid(String openid) { this.openid = openid; } public String getScope() { return scope; } public void setScope(String scope) { this.scope = scope; } public String getUnionid() { return unionid; } public void setUnionid(String unionid) { this.unionid = unionid; } } app/src/main/java/com/moral/yunfushao/wxapi/data/TokenEffectivenessBean.java
New file @@ -0,0 +1,34 @@ package com.moral.yunfushao.wxapi.data; /** * @author : chenqi. * @e_mail : 1650699704@163.com. * @create_time : 2018/11/26. * @Package_name: pregnancy_guard_android */ public class TokenEffectivenessBean { /** * errcode : 0 * errmsg : ok */ private int errcode; private String errmsg; public int getErrcode() { return errcode; } public void setErrcode(int errcode) { this.errcode = errcode; } public String getErrmsg() { return errmsg; } public void setErrmsg(String errmsg) { this.errmsg = errmsg; } } app/src/main/java/com/moral/yunfushao/wxapi/data/WXUserBean.java
New file @@ -0,0 +1,106 @@ package com.moral.yunfushao.wxapi.data; import java.util.List; /** * @author : chenqi. * @e_mail : 1650699704@163.com. * @create_time : 2018/11/26. * @Package_name: pregnancy_guard_android */ public class WXUserBean { /** * openid : OPENID * nickname : NICKNAME * sex : 1 * province : PROVINCE * city : CITY * country : COUNTRY * headimgurl : http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0 * privilege : ["PRIVILEGE1","PRIVILEGE2"] * unionid : o6_bmasdasdsad6_2sgVt7hMZOPfL */ private String openid; private String nickname; private int sex; private String province; private String city; private String country; private String headimgurl; private String unionid; private List<String> privilege; public String getOpenid() { return openid; } public void setOpenid(String openid) { this.openid = openid; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String getHeadimgurl() { return headimgurl; } public void setHeadimgurl(String headimgurl) { this.headimgurl = headimgurl; } public String getUnionid() { return unionid; } public void setUnionid(String unionid) { this.unionid = unionid; } public List<String> getPrivilege() { return privilege; } public void setPrivilege(List<String> privilege) { this.privilege = privilege; } }