package com.szyc.anantraveldriver.utils;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import com.google.gson.Gson;
import com.szyc.anantraveldriver.bean.GetAppVersionBean;
import com.szyc.anantraveldriver.bean.UseInfoBean;
import com.szyc.anantraveldriver.bean.VersionBean;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
/**
-
项目名称:SilentEagle
-
类描述:保存数据的通用类
-
创建人:Administrator
-
创建时间:2016/4/18 10:27
-
修改人:Administrator
-
修改时间:2016/4/18 10:27
-
修改备注:
/
public class SPUtils {
public SPUtils() {
/ cannot be instantiated */
throw new UnsupportedOperationException(“cannot be instantiated”);
}/**
保存在手机里面的文件名
*/
public static final String FILE_NAME = “anancar_driver_data”;
/**
-
保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法
-
@param context
-
@param key
-
@param object
*/
public static void put(Context context, String key, Object object) {SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();if (object instanceof String) {
editor.putString(key, (String) object);
} else if (object instanceof Integer) {
editor.putInt(key, (Integer) object);
} else if (object instanceof Boolean) {
editor.putBoolean(key, (Boolean) object);
} else if (object instanceof Float) {
editor.putFloat(key, (Float) object);
} else if (object instanceof Long) {
editor.putLong(key, (Long) object);
} else {
editor.putString(key, object.toString());
}SharedPreferencesCompat.apply(editor);
}
/**
-
得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
-
@param context
-
@param key
-
@param defaultObject
-
@return
*/
public static Object get(Context context, String key, Object defaultObject) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);if (defaultObject instanceof String) {
return sp.getString(key, (String) defaultObject);
} else if (defaultObject instanceof Integer) {
return sp.getInt(key, (Integer) defaultObject);
} else if (defaultObject instanceof Boolean) {
return sp.getBoolean(key, (Boolean) defaultObject);
} else if (defaultObject instanceof Float) {
return sp.getFloat(key, (Float) defaultObject);
} else if (defaultObject instanceof Long) {
return sp.getLong(key, (Long) defaultObject);
}
return defaultObject;
}
/**
- 移除某个key值已经对应的值
- @param context
- @param key
*/
public static void remove(Context context, String key) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.remove(key);
SharedPreferencesCompat.apply(editor);
}
/**
- 清除所有数据
- @param context
*/
public static void clear(Context context) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.clear();
SharedPreferencesCompat.apply(editor);
}
/**
- 查询某个key是否已经存在
- @param context
- @param key
- @return
*/
public static boolean contains(Context context, String key) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
return sp.contains(key);
}
/**
- 返回所有的键值对
- @param context
- @return
*/
public static Map<String, ?> getAll(Context context) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
return sp.getAll();
}
/**
-
创建一个解决SharedPreferencesCompat.apply方法的一个兼容类
-
@author zhy
*/
private static class SharedPreferencesCompat {
private static final Method sApplyMethod = findApplyMethod();/**
反射查找apply的方法
-
@return
*/
@SuppressWarnings({“unchecked”, “rawtypes”})
private static Method findApplyMethod() {
try {
Class clz = SharedPreferences.Editor.class;
return clz.getMethod(“apply”);
} catch (NoSuchMethodException e) {
e.printStackTrace();
}return null;
}
/**
- 如果找到则使用apply执行,否则使用commit
- @param editor
*/
public static void apply(SharedPreferences.Editor editor) {
try {
if (sApplyMethod != null) {
sApplyMethod.invoke(editor);
return;
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
editor.commit();
}
}
/**
- 保存用户数据
- @param context 上下文
- @param jsonUser 用户实体类转成json字符串
*/
public static void saveUser(Context context,String jsonUser){
put(context, “userinfo”, jsonUser);
}
/**
- 获取本地保存的用户数据(主要保存)
- @param context 上下文
- @return 用户实体类
*/
public static UseInfoBean getUser(Context context){
String useStr=get(context, “userinfo”, “”).toString();
if(TextUtils.isEmpty(useStr)){
return new UseInfoBean();
}else{
return new Gson().fromJson(useStr, UseInfoBean.class);
}
}
/**
*
- @param context
- @param :保存签退状态:true:签退了。false:没签退; 默认 false,没签退
*/
public static void putLoginOutState(Context context,boolean loginState){ //renhaijun add
put(context, “LoginOutState”, loginState); // 只要调用这个方法,则 表明 已经 点击过签退了。
}
/**
*
- @param context
- @return :签退状态:true:签退了。false:没签退; 默认 false,没签退.
*/
public static boolean getLoginOutState(Context context){ //renhaijun add
boolean loginOutState = (boolean) get(context, “LoginOutState”, false);
return loginOutState;
}
/**
- 保存手机号.在静默登录时,通过手机号 是否为“” 来判断 是否退出登录了。
- @param context
- @param phoneStr
*/
public static void putPhone(Context context,String phoneStr){ //renhaijun add
put(context,“phoneNumber”,phoneStr);
}
/**
- 获取手机号.在静默登录时,通过手机号 是否为“” 来判断 是否退出登录了。
- @param context
- @return
*/
public static String getPhone(Context context){ //renhaijun add
String phone = (String) get(context, “phoneNumber” , “”);
return phone;
}
/**
- 保存密码
- @param context
- @param pwdStr
*/
public static void putPassword(Context context, String pwdStr){ //renhaijun add
put(context,“password” , pwdStr);
}
/**
- 获取密码
- @param context
- @return
*/
public static String getPassword(Context context){ //renhaijun add
String password = (String) get(context,“password”,\”\”);
return password;
}
//上班之前是否认证人脸
public static void putIsRz(Context context, String pwdStr){ //renhaijun add
put(context,“isrz” , pwdStr);
}
/**
- 获取密码
- @param context
- @return
/
public static String getIsRz(Context context){ //renhaijun add
String isrz = (String) get(context,“isrz”,“2”);
return isrz;
}
/* - 保存头像链接
- @param context
- @param headUrl
*/
public static void putHeadUrl(Context context, String headUrl){ //renhaijun add
put(context,“headUrl” , headUrl);
}
public static String getHeadUrl(Context context){ //renhaijun add
String headUrl = (String) get(context,“headUrl”,\”\”);
return headUrl;
}
/**
- 保存 广告页 链接
- @param context
- @param headUrl
/
public static void putADUrl(Context context, String headUrl){ //renhaijun add
put(context,“ADUrl” , headUrl);
}
/* - 获取 广告页 链接
- @param context
- @param
*/
public static String getADUrl(Context context){ //renhaijun add
String headUrl = (String) get(context,“ADUrl”,\”\”);
return headUrl;
}
/**
- 保存版本更新信息 renhaijun add
- @param context 上下文
- @param jsonUser 用户实体类转成json字符串
*/
public static void saveCommonInfo(Context context, String jsonUser) {
if (!TextUtils.isEmpty(jsonUser)) {
put(context, “commoninfo”, jsonUser);
}
}
/**
- 保存版本更新信息 renhaijun add
- @param context 上下文
- @return 用户实体类
*/
public static VersionBean getCommonInfo(Context context) {
String useStr = get(context, “commoninfo”, “”).toString();
if (TextUtils.isEmpty(useStr)) {
return new VersionBean();
} else {
return new Gson().fromJson(useStr, VersionBean.class);
}
}
/**
- renhaijun add 保存修改后的性别
- @param context
- @param sex
*/
public static void saveSex(Context context,String sex){
if (!TextUtils.isEmpty(sex)) {
put(context, “sex”, sex);
}
}
/**
- renhaijun add
- 获取保存的修改后的性别
- @param context
- @return
*/
public static String getSex(Context context){
String sex = get(context,“sex”,\”\”).toString();
return sex;
}
/**
- renhaijun add 保存客服电话
- @param context
- @param phone
*/
public static void saveContactPhone(Context context, String phone){
if (!TextUtils.isEmpty(phone)){
put(context,“ContactPhone”, phone);
}
}
/**
- renhaijun add 获取客服电话
- @param context
- @return
*/
public static String getContactPhone(Context context){
String phone = get(context,“ContactPhone”,\”\”).toString();
return phone;
}
/**
- 保存首次获取验证码的时间 renhaijun add
- @param context
- @param firstCurrentTime
*/
public static void saveFirstCodeTime(Context context, String firstCurrentTime){
put(context,“saveFirstCodeTime”, firstCurrentTime);
}
/**
- 保存首次获取验证码的时间 renhaijun add
- @param context
- @param
*/
public static String getFirstCodeTime(Context context ){
String saveFirstCodeTime = (String) get(context,“saveFirstCodeTime”,\”\”);
return saveFirstCodeTime;
}
/**
- 保存 token renhaijun add
- @param context
- @param token
*/
public static void putToken(Context context, String token){
put(context,“token”, token);
}
/**
- 保存 token renhaijun add
- @param context
- @param
*/
public static String getToken(Context context ){
String token = (String) get(context,“token”,\”\”);
return token;
}
/**
- 保存 app版本管理数据 renhaijun add
- @param context 上下文
- @param jsonUser 用户实体类转成json字符串
*/
public static void putAppVersionBean(Context context,String jsonUser){
put(context, “GetAppVersionBean”, jsonUser);
}
/**
- 获取 app版本管理数据 renhaijun add
- @param context 上下文
- @return 用户实体类
*/
public static GetAppVersionBean getAppVersionBean(Context context){
String useStr=get(context, “GetAppVersionBean”, “”).toString();
if(TextUtils.isEmpty(useStr)){
return new GetAppVersionBean();
}else{
return new Gson().fromJson(useStr, GetAppVersionBean.class);
}
}
/**
- 保存是否 选择了智能wifi下载 版本更新 renhaijun add
- @param context
- @param wifidownload true:wifi智能下载。false:非wifi智能下载
*/
public static void putWifiDownload(Context context, boolean wifidownload){
put(context,“wifiDownload”, wifidownload);
}
/**
- 获取是否 选择了智能wifi下载 版本更新 renhaijun add
- @param context
*/
public static boolean getWifiDownload(Context context){
boolean wifidownload = (boolean) get(context,“wifiDownload”,false);
return wifidownload;
}
}