package com.android.activity;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.android.internal.widget.LockPatternUtils;
import android.os.PowerManager;
import android.os.Vibrator;
import android.util.Log;
import android.app.AlarmManager;
//import android.app.Activity;
import android.app.KeyguardManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.provider.Settings;
public class Util {
public static String getMessage(Exception e) {
StringWriter writer = new StringWriter();
e.printStackTrace(new PrintWriter(writer, true));
return writer.toString();
}
public static void sleep(int ms) {
try {
Thread.sleep(ms);
} catch (InterruptedException e) {
}
}
public static String getPath() {
File dir = new File("/data/data/ma.fprint/databases");
if (!dir.exists()) {
try {
dir.mkdir();
} catch (Exception e) {
print(e.getMessage());
}
}
return dir.toString();
}
public static void print(String str) {
Log.i("JTAG", str);
}
public static void vibrate(Context context, long ms) {
Vibrator v = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);
v.vibrate(ms);
}
public static void writeXML(Context context, String str, int val) {
// print("writeXML: val=" + Integer.toString(val));
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sp.edit();
editor.putInt(str, val);
editor.commit();
}
public static void writeXML(Context context, String str, String val) {
// print("writeXML: val=" + Integer.toString(val));
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sp.edit();
editor.putString(str, val);
editor.commit();
}
public static void writeXML(Context context, String str, boolean val) {
// print("writeXML: val=" + Integer.toString(val));
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sp.edit();
editor.putBoolean(str, val);
editor.commit();
}
public static int readXML(Context context, String str, int def) {
int ret;
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
ret = sp.getInt(str, def);
// print("readXML ret=" + Integer.toString(ret));
return ret;
}
public static String readXML(Context context, String str, String def) {
String ret;
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
ret = sp.getString(str, def);
return ret;
}
public static boolean readXML(Context context, String key, boolean def) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.getBoolean(key, def);
}
public static void removeXML(Context context, String key) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sp.edit();
editor.remove(key);
editor.commit();
}
public static boolean containsXML(Context context, String key) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
return sp.contains(key);
}
public static void Vibrate(final Context con, long milliseconds) {
Vibrator vib = (Vibrator) con.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(milliseconds);
}
public final static boolean isScreenLocked(Context c) {
android.app.KeyguardManager mKeyguardManager = (KeyguardManager) c.getSystemService(Context.KEYGUARD_SERVICE);
return mKeyguardManager.inKeyguardRestrictedInputMode();
}
// move from fprintlib.jar begin
public final static int maxCLength = 4;
public final static int maxELength = 16;
public static class FingerKey {
public static String fid = "fid";
public static String img = "img";
public static String name = "name";
}
public final static boolean isScreenOn(Context c) {
PowerManager pm = (PowerManager) c.getSystemService(Context.POWER_SERVICE);
return pm.isScreenOn();
}
public static void setAlarm(Context context, int gap, PendingIntent sender) {
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + gap * 60 * 1000, gap * 60 * 1000, sender);
}
public static void cancelAlarm(Context context, PendingIntent sender) {
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.cancel(sender);
}
static PowerManager.WakeLock wl;
public static void getPowerLock(Context context) {
if (wl == null) {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "authentication.wake_lock");
}
if (!wl.isHeld())
wl.acquire();
}
public static void releasePowerLock() {
if (wl != null && wl.isHeld())
wl.release();
}
public static long readScreenLockTime(Context context) {
long nRet = 0;
if (context != null) {
nRet = Settings.Secure.getLong(context.getContentResolver(), "lock_screen_lock_after_timeout", 0);
}
return nRet;
}
public static boolean isFPNeedSleep(Context context) {
if (readScreenLockTime(context) > 0) {
return true;
}
return false;
}
public static boolean isChinese(String str) {
String regEx1 = "[\\u4e00-\\u9fa5]+";
String regEx2 = "[\\uFF00-\\uFFEF]+";
String regEx3 = "[\\u2E80-\\u2EFF]+";
String regEx4 = "[\\u3000-\\u303F]+";
String regEx5 = "[\\u31C0-\\u31EF]+";
Pattern p1 = Pattern.compile(regEx1);
Pattern p2 = Pattern.compile(regEx2);
Pattern p3 = Pattern.compile(regEx3);
Pattern p4 = Pattern.compile(regEx4);
Pattern p5 = Pattern.compile(regEx5);
Matcher m1 = p1.matcher(str);
Matcher m2 = p2.matcher(str);
Matcher m3 = p3.matcher(str);
Matcher m4 = p4.matcher(str);
Matcher m5 = p5.matcher(str);
if (m1.find() || m2.find() || m3.find() || m4.find() || m5.find())
return true;
else
return false;
}
// move from fprintlib.jar end
/**
* 是否指定了特殊的密码
*/
public static boolean hasPassword(Context context) {
LockPatternUtils mLockPatternUtils = new LockPatternUtils(context);
boolean isPasswordQualityUnspecified = (mLockPatternUtils.getKeyguardStoredPasswordQuality() == 0);
if (isPasswordQualityUnspecified) {
return false;
} else {
return true;
}
}
public static void putStringSet(Context context, String key, String val) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
Set<String> set = sp.getStringSet(key, new HashSet<String>());
set.add(val);
SharedPreferences.Editor editor = sp.edit();
editor.putStringSet(key, set);
editor.commit();
}
public static void saveFingerName(Context context, String fingerName) {
String key = "finger_name_set";
putStringSet(context, key, fingerName);
}
// byte 与 int 的相互转换
public static byte intToByte(int x) {
return (byte) x;
}
public static int byteToInt(byte b) {
// Java 总是把 byte 当做有符处理;我们可以通过将其和 0xFF 进行二进制与得到它的无符值
return b & 0xFF;
}
}