Skip to content

🖥️🌡️ 硬件状态(HardwareStatus)模块 · 开发者指南 ​


🧠 模块介绍 ​

硬件状态模块,用于实时获取设备 CPU、运行时间等硬件信息。适合批量运维、健康监控场景。


🛠️ PanelSDK 初始化 ​

java
// 推荐在 Application 或 Activity 中初始化,确保全局唯一
PanelSDK panelSDK = new PanelSDK(this);

🧩 核心方法 · 专业解读 ​

🏷️ getCpuUsage — 获取CPU占用率 ​

java
int getCpuUsage()
参数说明
参数类型说明
无无参数
返回值说明
返回值说明
int成功返回CPU使用率
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN)
-2设备不支持该功能
-3SDK版本不支持该功能
-5服务未启动
典型场景代码
java
int cpuUsage = panelSDK.getCpuUsage();
if (cpuUsage >= 0) {
    // 🎉 获取成功,CPU使用率:${cpuUsage}%
} else if (cpuUsage == -1) {
    // ❗ 未知错误,建议检查日志
} else if (cpuUsage == -2) {
    // 🚫 设备不支持该功能
} else if (cpuUsage == -3) {
    // ⚠️ SDK版本不支持该功能
} else if (cpuUsage == -5) {
    // 🔒 服务未启动,请检查系统服务状态
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ getCpuTemperature — 获取CPU温度 ​

java
int getCpuTemperature()
参数说明
参数类型说明
无无参数
返回值说明
返回值说明
int成功返回温度值
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN)
-2设备不支持该功能
-3SDK版本不支持该功能
-5服务未启动
典型场景代码
java
int temperature = panelSDK.getCpuTemperature();
if (temperature >= 0) {
    // 🎉 获取成功,CPU温度:${temperature}℃
} else if (temperature == -1) {
    // ❗ 未知错误,建议检查日志
} else if (temperature == -2) {
    // 🚫 设备不支持该功能
} else if (temperature == -3) {
    // ⚠️ SDK版本不支持该功能
} else if (temperature == -5) {
    // 🔒 服务未启动,请检查系统服务状态
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ getUpTime — 获取设备运行时间 ​

java
long getUpTime()
参数说明
参数类型说明
无无参数
返回值说明
返回值说明
long成功返回运行时间(毫秒)
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN)
-2设备不支持该功能
-3SDK版本不支持该功能
-5服务未启动
典型场景代码
java
long upTime = panelSDK.getUpTime();
if (upTime >= 0) {
    // 🎉 获取成功,运行时间:${upTime}毫秒
} else if (upTime == -1) {
    // ❗ 未知错误,建议检查日志
} else if (upTime == -2) {
    // 🚫 设备不支持该功能
} else if (upTime == -3) {
    // ⚠️ SDK版本不支持该功能
} else if (upTime == -5) {
    // 🔒 服务未启动,请检查系统服务状态
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ getExternalCameraDegree — 获取扩展摄像头取景画面默认角度 ​

java
int getExternalCameraDegree();
参数说明
参数类型说明
无无参数
返回值说明
返回值说明
int成功返回扩展摄像头默认角度(度)
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN)
-2设备不支持该功能
-3SDK版本不支持该功能
-5服务未启动
典型场景代码
java
int degree = panelSDK.getExternalCameraDegree();
if (degree >= 0) {
    // 🎉 获取成功,当前扩展摄像头默认角度:${degree}度
} else if (degree == -1) {
    // ❗ 未知错误,建议检查日志
} else if (degree == -2) {
    // 🚫 设备不支持该功能
} else if (degree == -3) {
    // ⚠️ SDK版本不支持该功能
} else if (degree == -5) {
    // 🔒 服务未启动,请检查系统服务状态
} else {
    // ❗ 其他错误,参考错误码表
}


🏷️ setExternalCameraDegree — 设置扩展摄像头取景画面默认角度 ​

java
int setExternalCameraDegree(int degree);
参数说明
参数类型说明
degreeint默认角度,注意设备重启后生效
返回值说明
返回值说明
0设置成功
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN)
-2设备不支持该功能
-3SDK版本不支持该功能
-5服务未启动
典型场景代码
java
int result = panelSDK.setExternalCameraDegree(90);
if (result == 0) {
        // 🎉 设置成功,默认桌面已切换
} else if (result == -1) {
    // ❗ 未知错误,建议检查日志
} else if (result == -2) {
    // 🚫 设备不支持该功能
} else if (result == -3) {
    // ⚠️ SDK版本不支持该功能
} else if (result == -5) {
    // 🔒 服务未启动,请检查系统服务状态
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ setSystemBrightness — 设置系统屏幕亮度 ​

java
int setSystemBrightness(int brightness)
参数说明
参数类型说明
brightnessint屏幕亮度,取值 0~255(0 最暗、255 最亮)。写入前会自动切换为手动亮度模式,全系统立即生效并持久化(重启保留)
返回值说明
返回值说明
0设置成功
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN),亮度超出 0~255 范围时同样返回 -1
典型场景代码
java
int result = panelSDK.setSystemBrightness(128);
if (result == 0) {
    // 🎉 设置成功,全系统亮度已生效并持久化
} else if (result == -1) {
    // ❗ 亮度超范围(0~255)或调用失败,建议检查日志
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ getSystemBrightness — 获取系统屏幕亮度 ​

java
int getSystemBrightness()
参数说明
参数类型说明
无无参数
返回值说明
返回值说明
0~255当前屏幕亮度
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN)或服务未启动,返回值为负即为失败
典型场景代码
java
int brightness = panelSDK.getSystemBrightness();
if (brightness >= 0) {
    // 🎉 获取成功,当前亮度:${brightness}
} else if (brightness == -1) {
    // ❗ 未知错误,建议检查日志
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ setSystemVolume — 设置系统媒体音量 ​

java
int setSystemVolume(int volume)

💡 只改媒体音量的简写,等价于 setSystemVolume(VolumeType.MEDIA, volume)。 要控制通话/铃声/通知/闹钟,请用下方带 type 参数的 setSystemVolume(int type, int volume)。

参数说明
参数类型说明
volumeint媒体音量(STREAM_MUSIC),取值 0 ~ 最大音量(上限见 AudioManager.getStreamMaxVolume(STREAM_MUSIC));立即生效,无弹窗提示
返回值说明
返回值说明
0设置成功
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN),音量超出范围时同样返回 -1
-2设备不支持该功能(设备无音频服务)
典型场景代码
java
int result = panelSDK.setSystemVolume(8);
if (result == 0) {
    // 🎉 设置成功,媒体音量已生效
} else if (result == -1) {
    // ❗ 音量超范围或调用失败,建议检查日志
} else if (result == -2) {
    // 🚫 设备无音频服务
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ getSystemVolume — 获取系统媒体音量 ​

java
int getSystemVolume()

💡 只读媒体音量的简写,等价于 getSystemVolume(VolumeType.MEDIA)。 要读通话/铃声/通知/闹钟,请用下方带 type 参数的 getSystemVolume(int type)。

参数说明
参数类型说明
无无参数
返回值说明
返回值说明
0~最大音量当前媒体音量(STREAM_MUSIC)
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN)或服务未启动,返回值为负即为失败
-2设备不支持该功能(设备无音频服务)
典型场景代码
java
AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
int max = am != null ? am.getStreamMaxVolume(AudioManager.STREAM_MUSIC) : 15;
int volume = panelSDK.getSystemVolume();
if (volume >= 0) {
    // 🎉 获取成功,当前音量:${volume}/${max}
} else if (volume == -1) {
    // ❗ 未知错误,建议检查日志
} else if (volume == -2) {
    // 🚫 设备无音频服务
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ setSystemVolume — 设置指定类型的系统音量 ​

java
int setSystemVolume(int type, int volume)
参数说明
参数类型说明
typeint音量类型,取值见下表 VolumeType,五路互相独立
volumeint目标档位,必须在 getSystemVolumeMin(type) ~ getSystemVolumeMax(type) 之间;立即生效,无弹窗提示

🎚️ VolumeType 音量类型常量(对应系统 AudioManager 流,区间为 RK3568 实测值,请以 getSystemVolumeMin/Max 运行时查询为准)

常量值对应系统流档位区间说明
VolumeType.MEDIA0STREAM_MUSIC0~25媒体:音乐、视频、游戏
VolumeType.VOICE_CALL1STREAM_VOICE_CALL1~15通话,最小档为 1
VolumeType.RING2STREAM_RING0~7铃声;系统提示音(按键音等)与其共用档位,设为 0 会把铃声模式切到静音
VolumeType.NOTIFICATION3STREAM_NOTIFICATION0~7通知,与铃声相互独立
VolumeType.ALARM4STREAM_ALARM1~7闹钟,最小档为 1
返回值说明
返回值说明
0设置成功
-1类型非法或档位越界(SYSTECH_COMMON_ERROR_UNKNOWN)
-2设备不支持该功能(设备无音频服务)
-5服务未启动
典型场景代码
java
// 闹钟音量设为 5:闹钟最小档是 1,传 0 会按越界返回 -1
int result = panelSDK.setSystemVolume(VolumeType.ALARM, 5);
if (result == 0) {
    // 🎉 设置成功,闹钟音量已生效
} else if (result == -1) {
    // ❗ 类型非法或档位越界,建议先用 getSystemVolumeMin/Max 查区间
} else if (result == -2) {
    // 🚫 设备无音频服务
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ getSystemVolume — 获取指定类型的系统音量 ​

java
int getSystemVolume(int type)
参数说明
参数类型说明
typeint音量类型,取值见 VolumeType
返回值说明
返回值说明
min~max该类型当前档位(区间见 getSystemVolumeMin/Max)
-1类型非法(SYSTECH_COMMON_ERROR_UNKNOWN)或服务未启动,返回值为负即为失败
-2设备不支持该功能(设备无音频服务)
典型场景代码
java
int volume = panelSDK.getSystemVolume(VolumeType.NOTIFICATION);
if (volume >= 0) {
    // 🎉 当前通知音量:${volume}
} else if (volume == -1) {
    // ❗ 类型非法或调用失败,建议检查日志
} else if (volume == -2) {
    // 🚫 设备无音频服务
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ getSystemVolumeMax — 获取指定类型的最大档位 ​

java
int getSystemVolumeMax(int type)
参数说明
参数类型说明
typeint音量类型,取值见 VolumeType
返回值说明
返回值说明
max该类型最大档位,用于给滑条定标
-1类型非法或服务未启动
-2设备不支持该功能(设备无音频服务)
典型场景代码
java
// 五路音量自绘滑条:行程取 0~(max-min),实际档位 = min + progress
int min = panelSDK.getSystemVolumeMin(VolumeType.RING);
int max = panelSDK.getSystemVolumeMax(VolumeType.RING);
int cur = panelSDK.getSystemVolume(VolumeType.RING);
if (min >= 0 && max >= min && cur >= 0) {
    seekBar.setMax(max - min);
    seekBar.setProgress(cur - min);
    // 🎉 滑条已对齐系统铃声档位:${cur}/${max}
}

🏷️ getSystemVolumeMin — 获取指定类型的最小档位 ​

java
int getSystemVolumeMin(int type)
参数说明
参数类型说明
typeint音量类型,取值见 VolumeType
返回值说明
返回值说明
0 或 1多数类型为 0(可静音);通话、闹钟为 1,低于该值的档位会被判为越界
-1类型非法或服务未启动
-2设备不支持该功能(设备无音频服务)
典型场景代码
java
int min = panelSDK.getSystemVolumeMin(VolumeType.ALARM);
if (min >= 0) {
    // 🎉 闹钟最小档位:${min}(传比它更小的值会被拒)
}

🏷️ setFactoryResetDisabled — 设置恢复出厂设置入口禁用状态 ​

java
int setFactoryResetDisabled(boolean disabled)
参数说明
参数类型说明
disabledbooleantrue=隐藏恢复出厂入口,false=恢复显示;写入属性并同步 DISALLOW_FACTORY_RESET,立即生效免重启
返回值说明
返回值说明
0设置成功
-1未知错误(SYSTECH_COMMON_ERROR_UNKNOWN)
典型场景代码
java
int result = panelSDK.setFactoryResetDisabled(true);
if (result == 0) {
    // 🎉 设置成功,恢复出厂入口已隐藏
} else if (result == -1) {
    // ❗ 未知错误,建议检查日志
} else {
    // ❗ 其他错误,参考错误码表
}

🏷️ isFactoryResetDisabled — 查询恢复出厂设置入口是否禁用 ​

java
boolean isFactoryResetDisabled()
参数说明
参数类型说明
无无参数
返回值说明
返回值说明
true已禁用(恢复出厂入口隐藏),也是读取失败时的返回值
false未禁用(恢复出厂入口显示)
典型场景代码
java
boolean disabled = panelSDK.isFactoryResetDisabled();
if (disabled) {
    // 🔒 恢复出厂入口已隐藏
} else {
    // 🔓 恢复出厂入口正常显示
}

⚡ 专业进阶 · 技术要点 ​

所有方法均为同步调用,返回值可直接判断结果,适合批量自动化脚本。 推荐在具备系统权限的环境下调用,部分功能需 Root 或系统签名。 依赖底层 StHardwareStatusManager,请确保相关依赖已集成并兼容目标设备。 支持企业级批量部署、远程硬件监控。


🏆 专业总结 ​

只需一个 PanelSDK 实例,硬件状态随时掌控。无论是批量运维、健康监控还是智能风控,HardwareStatus 模块让你的设备管理更专业、更高效!