package com.uiui.aios.utils; import android.annotation.SuppressLint; import android.content.Context; import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.os.Build; import android.os.Environment; import android.util.Log; import androidx.core.content.ContextCompat; import com.uiui.aios.BuildConfig; import java.io.File; import java.lang.reflect.Method; public class Utils { /** * 获取设备序列号 * * @return */ @SuppressLint("MissingPermission") public static String getSerial() { String serial = "unknow"; try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {//9.0+ serial = Build.getSerial(); } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {//8.0+ serial = Build.SERIAL; } else {//8.0- Class c = Class.forName("android.os.SystemProperties"); Method get = c.getMethod("get", String.class); serial = (String) get.invoke(c, "ro.serialno"); } } catch (Exception e) { e.printStackTrace(); Log.e("e", "读取设备序列号异常:" + e.toString()); } if (BuildConfig.DEBUG) { // return "QNG2DKB00463"; } return serial; } public static String getDeviceSN() { String serial = null; try { Class c = Class.forName("android.os.SystemProperties"); Method get = c.getMethod("get", String.class); serial = (String) get.invoke(c, "persist.sys.hrSerial"); } catch (Exception e) { e.printStackTrace(); } return serial; } /** * 获取电量 * * @param mContext * @return */ synchronized public static int getBatteryLevel(Context mContext) { if (Build.VERSION.SDK_INT >= 21) { return ((BatteryManager) mContext.getSystemService(Context.BATTERY_SERVICE)).getIntProperty(4); } else { Intent intent = (new ContextWrapper(mContext)).registerReceiver(null, new IntentFilter("android.intent.action.BATTERY_CHANGED")); return intent.getIntExtra("level", -1) * 100 / intent.getIntExtra("scale", -1); } } public static String getDownLoadPath(Context context) { String path = ContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_DOWNLOADS)[0].getAbsolutePath(); return path + File.separator; } public static String getFileNamefromURL(String url) { int position = url.lastIndexOf("/"); return url.substring(position + 1); } }