[*]
陈奇
2018-11-27 a45036d4003974f8e78eb819a932895291d677d6
[*]
6 files added
7 files modified
1003 ■■■■ changed files
app/src/main/java/com/moral/yunfushao/MainActivity.java 11 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/MainApp.java 4 ●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/activity/LoginActivity.java 19 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/activity/SplashActivity.java 96 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/common/WXConstants.java 18 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/httputils/WXHttpUtil.java 41 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/model/User.java 18 ●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/ui/PanelView.java 4 ●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/utils/SharedPreferencesUtil.java 384 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java 185 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/wxapi/data/AccessTokenBean.java 83 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/wxapi/data/TokenEffectivenessBean.java 34 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/moral/yunfushao/wxapi/data/WXUserBean.java 106 ●●●●● patch | view | raw | blame | history
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;
    }
}