public class DeviceTool {
/*** 获取当前设置的电话号码
*/
public static String getNativePhoneNumber(Context context) {
String nativePhoneNumber = "";
try {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
nativePhoneNumber = telephonyManager.getLine1Number();
} catch (Exception e) {
nativePhoneNumber = "";
}
return nativePhoneNumber;
}
/**
* 获取设备序列号
*/
public static String getDeviceId(Context context) {
String deviceId = "";
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
deviceId = telephonyManager.getDeviceId();
if (deviceId == null || "".equals(deviceId)) {
deviceId = "0000000000";
}
return deviceId;
}
/**
* @description:获取设备唯一标识
*/
public static String getDeviceUni(Context context) {
String deviceUni = "";
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
deviceUni = tm.getDeviceId();
if (TextUtils.isEmpty(deviceUni)) {
deviceUni = getMacAddress(context);
}
return deviceUni;
}
/**
* @description:获取wifimac地址
*/
public static String getMacAddress(Context context) {
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
String wifiMac = info.getMacAddress();
return wifiMac;
}
/**
* 获得一个去掉"-"符号的UUID
*/
public static String getUUID() {
String s = UUID.randomUUID().toString();
// 去掉"-"符号
return s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);
}
/**
* 判断是否已连接到网络.
*/
public static boolean isNetworkConnected(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected()) {
if (info.getState() == NetworkInfo.State.CONNECTED) { return true; }
}
}
return false;
}
/**
* 检查网络接连类型.
*
* @param context
* @return SysConstants.NETWORK_TYPE_NONE: 无网络连接;
* SysConstants.NETWORK_TYPE_WIFI: 通过WIFI连接网络;
* SysConstants.NETWORK_TYPE_WAP: 通过GPRS连接网络.
*/
public static int checkNetWorkType(Context context) {
if (isAirplaneModeOn(context)) { return Constant.NETWORK_TYPE_NONE; }
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) { return Constant.NETWORK_TYPE_NET; }
if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED) {
String type = connectivityManager.getActiveNetworkInfo().getExtraInfo();
if ("wap".equalsIgnoreCase(type.substring(type.length() - 3))) {
return Constant.NETWORK_TYPE_WAP;
} else {
return Constant.NETWORK_TYPE_NET;
}
}
return Constant.NETWORK_TYPE_NONE;
}
/**
* 判断手机是否处于飞行模式.
*
* @param context
* @return
*/
public static boolean isAirplaneModeOn(Context context) {
return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0;
}
/**
* 判断手机SDCard是否已安装并可读写.
*
* @return
*/
public static boolean isSDCardUsable() {
return Environment.MEDIA_MOUNTED.equalsIgnoreCase(Environment.getExternalStorageState());
}
/**
* 获取指定的SDCard中图片缓存目录.
*
* @param defaultImageFolderName
* @return
*/
public static File getImgCacheDir(String defaultImageFolderName) {
if (isSDCardUsable()) {
File dir = new File(Environment.getExternalStorageDirectory(), defaultImageFolderName);
if (!dir.exists())
dir.mkdirs();
return dir;
}
return null;
}
/**
* 隐藏某焦点控件弹出的软件键盘.
*
* @param context
* @param view
*/
public static void hideSoftKeyboardFromView(Context context, View view) {
InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Service.INPUT_METHOD_SERVICE);
IBinder binder = view.getWindowToken();
inputMethodManager.hideSoftInputFromWindow(binder, 0);
}
/**
* 获取SDcard根目录
* @description:
*/
public static String getSDPath() {
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED);
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
} else {
sdDir = new File("/mnt/sdcard/");
if (!sdDir.exists() || !sdDir.canRead() || !sdDir.canWrite()) { return ""; }
}
return sdDir.getAbsolutePath();
}
}