package com.secondworld.sdk.utils; import android.app.ActivityManager; 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.Build; import android.provider.Settings; import com.secondworld.sdk.GameAppProxy; import java.net.NetworkInterface; import java.util.Enumeration; import java.util.Locale; import java.util.UUID; public class DeviceUtil { public static final String FAKE_MAC = "02:00:00:00:00:00"; public static long getVersionCode() { long appVersionCode = 0; try { PackageInfo packageInfo = GameAppProxy.app.getApplicationContext() .getPackageManager() .getPackageInfo(GameAppProxy.app.getPackageName(), 0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { appVersionCode = packageInfo.getLongVersionCode(); } else { appVersionCode = packageInfo.versionCode; } } catch (PackageManager.NameNotFoundException e) { LogUtil.e("getAppVersionCode", e); } return appVersionCode; } public static String getVersionName() { String appVersionName = ""; // try { // PackageInfo packageInfo = GameAppProxy.app.getApplicationContext() // .getPackageManager() // .getPackageInfo(GameAppProxy.app.getPackageName(), 0); // appVersionName = packageInfo.versionName; // } catch (PackageManager.NameNotFoundException e) { // LogUtil.e("getAppVersionName", e); // } return appVersionName; } /** * 获取当前设备总运行内存 * 单位为 byte * * @return */ public static long getTotalRAMSize() { ActivityManager manager = (ActivityManager) GameAppProxy.app.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo(); manager.getMemoryInfo(info); return info.totalMem; } public static String getAndroidId() { // String ANDROID_ID = Settings.System.getString(GameAppProxy.app.getContentResolver(), Settings.System.ANDROID_ID); // if (ANDROID_ID == null || ANDROID_ID.equals("9774d56d682e549c")) // return ""; // return ANDROID_ID; return ""; } /** * 唯一标识 * * @return */ public static String getUniqueID() { String uniqueID = SPUtils.get().getString(SPUtils.UNIQUE_ID, ""); if (!uniqueID.trim().isEmpty()) return uniqueID; uniqueID = getAndroidId() + getLocalMac(); //自己生成的uid if (uniqueID.trim().isEmpty()) uniqueID = UUID.randomUUID().toString(); uniqueID = Util.md5(uniqueID).toUpperCase(); SPUtils.get() .edit() .putString(SPUtils.UNIQUE_ID, uniqueID.trim()) .apply(); return uniqueID; } /** * mac 地址 * * @return */ public static String getLocalMac() { return ""; // String mac = SPUtils.get().getString(SPUtils.MAC, ""); // if (!mac.trim().isEmpty()) // return mac; // try { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // String interfaceName = "wlan0"; // Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); // NetworkInterface intf = null; // while (interfaces.hasMoreElements()) { // intf = interfaces.nextElement(); // if (!intf.getName().equalsIgnoreCase(interfaceName)) // continue; // byte[] addresses = intf.getHardwareAddress(); // if (mac != null) { // StringBuilder buf = new StringBuilder(); // for (byte aMac : addresses) { // buf.append(String.format("%02X:", aMac)); // } // if (buf.length() > 0) { // buf.deleteCharAt(buf.length() - 1); // } // mac = buf.toString(); // } // break; // } // } else { // WifiManager wifi = (WifiManager) GameAppProxy.app.getSystemService(Context.WIFI_SERVICE); // if (wifi != null) { // WifiInfo wifiInfo = wifi.getConnectionInfo(); // if (wifiInfo != null) { // mac = wifiInfo.getMacAddress(); // } // } // } // } catch (Throwable e) { // e.printStackTrace(); // } // // mac = mac.toUpperCase(Locale.ENGLISH); // // if (mac.equals(FAKE_MAC)) // mac = ""; // // SPUtils.get() // .edit() // .putString(SPUtils.MAC, mac.trim()) // .apply(); // // return mac; } }