package com.keju.maomao.util; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.preference.PreferenceManager; /** * SharedPreferences工具类 * * @author Zhoujun 说明:SharedPreferences的操作工具类,需要缓存到SharedPreferences中的数据在此设置。 */ public class SharedPrefUtil { public static final String IS_FIRST_LOGIN = "is_first_login";// 第一次进入 public static final String SINA_UID = "sina_uid";// 新浪微博唯一id public static final String WEIBO_ACCESS_TOKEN = "weibo_access_token";// 新浪微博令牌 public static final String WEIBO_EXPIRES_IN = "weibo_expires_in";// 新浪微博令牌时间 public static final String WEIBO_ACCESS_CURR_TIME = "weibo_sccess_curr_time";// 新浪微博授权时间 public static final String QQ_ACCESS_TOKEN = "qq_access_token";// 新浪微博令牌 public static final String QQ_EXPIRES_IN = "qq_expires_in";// 新浪微博令牌时间 public static final String QQ_OPENID = "qq_openid"; public static final String QQ_ACCESS_CURR_TIME = "qq_sccess_curr_time";// 新浪微博授权时间 public static final String UID = "uid";// 用户id public static final String IS_INFO_COMPLETE = "is_info_complete";// 个人信息补全 public static final String OPEN_ID = "open_id";// 开放的open_id public static final String LOGIN_TYPE = "login_type";// 登录方式 0 普通登陆 1 新浪登陆 2 // qq登录 public static final String PASSWORD = "password"; //密码 public static final String CITYNAME="city_name"; //保存选择的城市名字 public static final String PROVINCEID="province_id"; //保存选择的省得id public static final String IS_FIRST_CITYACTIVITY="is_first_cityactivity"; //是不是第一次进入城市切换界面 public static final String SAVE_RING_URL = "save_ring_url";//保存用户选择的铃声url public static final String IS_PLAY_RING="is_play_ring"; //是否播放铃声 public static final String IS_VIBRATE = "is_vibrate"; //是否振动 public static final String IS_ACCEPT_NEW_LETTER = "is_accept_new_letter";//是否接受新消息 /** * 判断是否是第一次进入应用 * * @param context * @return */ public static boolean isFistLogin(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getBoolean(IS_FIRST_LOGIN, true); } /** * 如果已经进入应用,则设置第一次登录为false * * @param context */ public static void setFistLogined(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putBoolean(IS_FIRST_LOGIN, false); e.commit(); } /** * 判断用户是否登录 */ public static boolean isLogin(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return (sp.getInt(UID, 0) > 0); } /** * 保存uid * * @param context * @param uid */ public static void setUid(Context context, int uid) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putInt(UID, uid); e.commit(); } public static int getUid(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getInt(UID, 0); } /** * 保存open_id * * @param context * @param uid */ public static void setOpenId(Context context, String openid) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putString(OPEN_ID, openid); e.commit(); } public static String getOpenId(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(OPEN_ID, null); } /** * 保存用户选择的城市 * * @param context * @param cityName */ public static void setCityName(Context context, String cityName) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putString(CITYNAME, cityName); e.commit(); } public static String getCityName(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(CITYNAME, null); } /** * 保存用户选择省的id * * @param context * @param provinceId */ public static void setProvinceId(Context context, int provinceId) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putInt(PROVINCEID, provinceId); e.commit(); } public static int getProvinceId(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getInt(PROVINCEID, 0); } /** * 判断是否是第一次进入城市切换界面 * * @param context * @return */ public static boolean isFistCityActivity(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getBoolean(IS_FIRST_CITYACTIVITY, true); } /** * 如果已经进入城市切换界面,则设置第一次为false * * @param context */ public static void setFistCityActivity(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putBoolean(IS_FIRST_CITYACTIVITY, false); e.commit(); } /** * 保存登陆的方式 * * @param context * @param uid */ public static void setLoginType(Context context, int logintype) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putInt(LOGIN_TYPE, logintype); e.commit(); } public static int getLoginType(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getInt(LOGIN_TYPE, 0); } /** * 保存登陆的方式 * * @param context * @param uid */ public static void setPassword(Context context, String passWord) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putString(PASSWORD, passWord); e.commit(); } public static String getPassword(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(PASSWORD, null); } /** * 保存用户选择的铃声url * * @param context * @param ringUrl */ public static void setRingUrl(Context context, String ringUrl) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putString(SAVE_RING_URL, ringUrl); e.commit(); } public static String getRingUrl(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(SAVE_RING_URL, null); } /** * 保存用户选择的铃声url * * @param context * @param ringUrl */ public static void setPlayRing(Context context, Boolean isPlayRing) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putBoolean(IS_PLAY_RING, isPlayRing); e.commit(); } public static Boolean getPlayRing(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getBoolean(IS_PLAY_RING, true); } /** * 保存用户选择是否振动 * * @param context * @param ringUrl */ public static void setVibrate(Context context, Boolean isVibrate) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putBoolean(IS_VIBRATE, isVibrate); e.commit(); } public static Boolean getVibrate(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getBoolean(IS_VIBRATE, true); } /** * 保存用户选择是否接受新消息 * * @param context * @param ringUrl */ public static void setNewLetter(Context context, Boolean isNewLetter) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putBoolean(IS_ACCEPT_NEW_LETTER, isNewLetter); e.commit(); } public static Boolean getNewLetter(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getBoolean(IS_ACCEPT_NEW_LETTER, true); } // -----------------------------新浪微博验证信息----------------- /** * 获取新浪微博openid * * @param context * @return */ public static String getWeiboUid(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(SINA_UID, null); } /** * 设置微博绑定信息 * * @param context * @param access_token * @param expires_in */ public static void setWeiboInfo(Context context, String sina_uid, String access_token, String expires_in, String access_curr_time) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putString(SINA_UID, sina_uid); e.putString(WEIBO_ACCESS_TOKEN, access_token); e.putString(WEIBO_EXPIRES_IN, expires_in); e.putString(WEIBO_ACCESS_CURR_TIME, access_curr_time); e.commit(); } /** * 清除微博绑定 * * @param context * @return */ public static void clearWeiboBind(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); sp.edit().remove(WEIBO_ACCESS_TOKEN).remove(WEIBO_EXPIRES_IN).commit(); } public static String getWeiboAccessToken(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(WEIBO_ACCESS_TOKEN, null); } public static String getWeiboExpiresIn(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(WEIBO_EXPIRES_IN, null); } public static String getWeiboAccessCurrTime(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(WEIBO_ACCESS_CURR_TIME, null); } /** * 检测新浪微博是否绑定 */ public static boolean checkWeiboBind(Context context) { String WeiboAccessToken = getWeiboAccessToken(context); String WeiboExpiresIn = getWeiboExpiresIn(context); String weiboAccessCurrTime = getWeiboAccessCurrTime(context); if (WeiboAccessToken == null || WeiboExpiresIn == null || weiboAccessCurrTime == null) { return false; } else { long currTime = System.currentTimeMillis(); long accessCurrTime = Long.parseLong(weiboAccessCurrTime); long expiresIn = Long.parseLong(WeiboExpiresIn); if ((currTime - accessCurrTime) / 1000 > expiresIn) { return false; } else { return true; } } } // -----------------------------腾讯微博验证信息----------------- /** * 设置腾讯微博信息 * * @param context * @param access_token * @param expires_in * @param access_curr_time */ public static void setQQInfo(Context context, String access_token, String expires_in, String openid, String access_curr_time) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putString(QQ_ACCESS_TOKEN, access_token); e.putString(QQ_EXPIRES_IN, expires_in); e.putString(QQ_OPENID, openid); e.putString(QQ_ACCESS_CURR_TIME, access_curr_time); e.commit(); } public static String getQQAccessToken(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(QQ_ACCESS_TOKEN, null); } public static String getQQExpiresIn(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(QQ_EXPIRES_IN, null); } public static String getQQOpenid(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(QQ_OPENID, null); } public static String getQQAccessCurrTime(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getString(QQ_ACCESS_CURR_TIME, null); } public static void clearQQBind(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); sp.edit().remove(QQ_ACCESS_TOKEN).remove(QQ_EXPIRES_IN).remove(QQ_OPENID).remove(QQ_ACCESS_CURR_TIME).commit(); } /** * 检查腾讯微博是否绑定 * * @param context * @return */ public static boolean checkQQBind(Context context) { String qqAccessToken = getQQAccessToken(context); String qqExpiresIn = getQQExpiresIn(context); String qqAccessCurrTime = getQQAccessCurrTime(context); if (qqAccessToken == null || qqExpiresIn == null || qqAccessCurrTime == null) { return false; } else { long currTime = System.currentTimeMillis(); long accessCurrTime = Long.parseLong(qqAccessCurrTime); long expiresIn = Long.parseLong(qqExpiresIn); if ((currTime - accessCurrTime) / 1000 > expiresIn) { return false; } else { return true; } } } /** * 获得检测间隔 * * @param con * @return */ public static final String CHECK_UPDATE_TIME_KEY = "check_update_time_key";// 轮询时间 public static long getUpdateInterval(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getLong(CHECK_UPDATE_TIME_KEY, 5 * 1000); } /** * 清除用户信息 * * @param context */ public static void clearUserinfo(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.remove(UID).remove(WEIBO_ACCESS_TOKEN).remove(WEIBO_EXPIRES_IN).remove(SINA_UID); e.remove(QQ_ACCESS_TOKEN).remove(QQ_EXPIRES_IN).remove(QQ_OPENID).remove(QQ_ACCESS_CURR_TIME); e.commit(); } /** * 设置补充信息完整 * * @param context */ public static void setInfoComplete(Context context, boolean isComplete) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor e = sp.edit(); e.putBoolean(IS_INFO_COMPLETE, isComplete); e.commit(); } }