package xyz.yhsj.yhutils.phone;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.SystemClock;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.Locale;
import xyz.yhsj.yhutils.logutils.LogUtils;
/**
* 获取手机信息工具类<br>
* 需要"android.permission.READ_PHONE_STATE"权限
*/
public class DeviceUtils {
/**
* 获取本机语言
*
* @return
*/
public static String getLanguage() {
Locale locale = Locale.getDefault();
String languageCode = locale.getLanguage();
if (TextUtils.isEmpty(languageCode)) {
languageCode = "";
}
return languageCode;
}
/**
* 获取国家编号
*
* @return
*/
public static String getCountry() {
Locale locale = Locale.getDefault();
String countryCode = locale.getCountry();
if (TextUtils.isEmpty(countryCode)) {
countryCode = "";
}
return countryCode;
}
/**
* 获取App包 信息版本号
*
* @param context
* @return
*/
public PackageInfo getAppInfo(Context context) {
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = null;
try {
packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return packageInfo;
}
/**
* 获取手机的IMEI号
*/
public static String getIMEI(Context context) {
if (context == null) {
LogUtils.e("getIMEI context为空");
}
TelephonyManager telecomManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String imei = telecomManager.getDeviceId();
LogUtils.i("IMEI标识:" + imei);
return imei;
}
/**
* 获取手机IESI号
*/
public static String getIESI(Context context) {
if (context == null) {
LogUtils.e("getIESI context为空");
}
TelephonyManager telecomManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String imsi = telecomManager.getSubscriberId();
LogUtils.i("IESI标识:" + imsi);
return imsi;
}
/**
* 获取手机号码
*/
public static String getTelNumber(Context context) {
if (context == null) {
LogUtils.e("getTelNumber context为空");
}
TelephonyManager telecomManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String numer = telecomManager.getLine1Number(); // 手机号码,有的可得,有的不可得
LogUtils.i("手机号码:" + numer);
return numer;
}
/**
* 获取设备的系统版本号
*/
public static int getDeviceSDK() {
int sdk = android.os.Build.VERSION.SDK_INT;
LogUtils.i("设备版本:" + sdk);
return sdk;
}
/**
* 获取手机品牌
*/
public static String getBRAND() {
String brand = android.os.Build.BRAND;
LogUtils.i("手机品牌:" + brand);
return brand;
}
/**
* 获取设备的型号
*/
public static String getDeviceName() {
String model = android.os.Build.MODEL;
LogUtils.i("设备型号:" + model);
return model;
}
/**
* 获取本机IP地址
*
* @return
*/
public static String getLocalIPAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements(); ) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
return "0.0.0.0";
}
return "0.0.0.0";
}
/**
* 获取 MAC 地址
* <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
*/
public static String getMacAddress(Context context) {
//wifi mac地址
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
String mac = info.getMacAddress();
return mac;
}
/**
* 获取 开机时间
*/
public static String getBootTimeString() {
long ut = SystemClock.elapsedRealtime() / 1000;
int h = (int) ((ut / 3600));
int m = (int) ((ut / 60) % 60);
return h + ":" + m;
}
}