本篇文章主要记录了一些设备的参数,以及简单的方法峰转.
1:获取开机时长
SystemClock.elapsedRealtime()是Android系统中的一个方法,用于获取系统启动后经过的毫秒数。
它返回的是设备从启动到当前时间的时间间隔,包括设备休眠的时间。
这个方法通常用于计算时间间隔或者判断某个操作的耗时。
该方法返回的是一个long类型的值,表示毫秒数。它可以用于测量程序的运行时间、计算两个事件之间的时间间隔等。
使用SystemClock.elapsedRealtime()方法可以避免受到系统时间的影响,因为它是基于设备启动时间来计算的,而不是基于系统时间。
/**
* @return 开机时长
* no permission
*/
public static long getBootTime(){
return SystemClock.elapsedRealtime();
}
2:获取android_id
Settings.Secure.ANDROID_ID是Android系统中的一个安全设置项,用于获取设备的唯一标识符。
它是一个64位的十六进制字符串,通常由设备的硬件信息和系统信息生成。
/**
* @param context
* @return android_id
* no permission
*/
public static String getUDID(Context context) {
try {
return Settings.Secure.getString(context.getContentResolver(),
Settings.Secure.ANDROID_ID);
} catch (Throwable e) {
return "android_id_unknown";
}
}
3: 判断是否亮屏
在Android中,可以使用PowerManager 类来判断设备的屏幕是否亮屏.
具体的方法是使用PowerManager的isInteractive() 或 isScreenOn()方法。
- isInteractive()方法:该方法用于检查设备是否处于交互状态,即屏幕是否亮屏并且用户可以与设备进行交互。如果返回true,则表示屏幕亮屏;如果返回false,则表示屏幕熄灭或处于非交互状态。
- isScreenOn()方法:该方法用于检查设备的屏幕是否亮屏,不考虑交互状态。如果返回true,则表示屏幕亮屏;如果返回false,则表示屏幕熄灭。
/**
* @param context
* @return 是否亮屏
* no permission
*/
public static boolean isScreenOn(Context context) {
try {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
return pm.isInteractive();
}
return pm.isScreenOn();
} catch (Throwable e) {
e.printStackTrace();
}
return false;
}
android.os.Build类提供了一些属性来获取设备和应用程序的信息.
4:Fingerprint 信息
/**
* @return Fingerprint 信息
* no permission
*/
public static String getDeviceFingerprint() {
return Build.FINGERPRINT;
}
5:手机主板名
/**
* 获取手机主板名
*/
public static String getDeviceBoard() {
return android.os.Build.BOARD;
}
6:品牌
/**
* @return 品牌
*/
public static String getBrand() {
return Build.BRAND;
}
其余的属性我们可以查看具体的源码.
另外我们还可以通过adb命令来获取build类相关的属性.
具体的命令如下:
adb shell getprop