Appearance
🖥️🌡️ 硬件状态(HardwareStatus)模块 · 开发者指南
🧠 模块介绍
硬件状态模块,用于实时获取设备 CPU、运行时间等硬件信息。适合批量运维、健康监控场景。
🛠️ PanelSDK 初始化
java
// 推荐在 Application 或 Activity 中初始化,确保全局唯一
PanelSDK panelSDK = new PanelSDK(this);🧩 核心方法 · 专业解读
🏷️ getCpuUsage — 获取CPU占用率
java
int getCpuUsage()参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| 无 | 无参数 |
返回值说明
| 返回值 | 说明 |
|---|---|
| int | 成功返回CPU使用率 |
| -1 | 未知错误(SYSTECH_COMMON_ERROR_UNKNOWN) |
| -2 | 设备不支持该功能 |
| -3 | SDK版本不支持该功能 |
| -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 | 设备不支持该功能 |
| -3 | SDK版本不支持该功能 |
| -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 | 设备不支持该功能 |
| -3 | SDK版本不支持该功能 |
| -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 | 设备不支持该功能 |
| -3 | SDK版本不支持该功能 |
| -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);参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| degree | int | 默认角度,注意设备重启后生效 |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 设置成功 |
| -1 | 未知错误(SYSTECH_COMMON_ERROR_UNKNOWN) |
| -2 | 设备不支持该功能 |
| -3 | SDK版本不支持该功能 |
| -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)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| brightness | int | 屏幕亮度,取值 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)。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| volume | int | 媒体音量(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)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| type | int | 音量类型,取值见下表 VolumeType,五路互相独立 |
| volume | int | 目标档位,必须在 getSystemVolumeMin(type) ~ getSystemVolumeMax(type) 之间;立即生效,无弹窗提示 |
🎚️ VolumeType 音量类型常量(对应系统 AudioManager 流,区间为 RK3568 实测值,请以 getSystemVolumeMin/Max 运行时查询为准)
| 常量 | 值 | 对应系统流 | 档位区间 | 说明 |
|---|---|---|---|---|
VolumeType.MEDIA | 0 | STREAM_MUSIC | 0~25 | 媒体:音乐、视频、游戏 |
VolumeType.VOICE_CALL | 1 | STREAM_VOICE_CALL | 1~15 | 通话,最小档为 1 |
VolumeType.RING | 2 | STREAM_RING | 0~7 | 铃声;系统提示音(按键音等)与其共用档位,设为 0 会把铃声模式切到静音 |
VolumeType.NOTIFICATION | 3 | STREAM_NOTIFICATION | 0~7 | 通知,与铃声相互独立 |
VolumeType.ALARM | 4 | STREAM_ALARM | 1~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)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| type | int | 音量类型,取值见 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)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| type | int | 音量类型,取值见 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)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| type | int | 音量类型,取值见 VolumeType |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 或 1 | 多数类型为 0(可静音);通话、闹钟为 1,低于该值的档位会被判为越界 |
| -1 | 类型非法或服务未启动 |
| -2 | 设备不支持该功能(设备无音频服务) |
典型场景代码
java
int min = panelSDK.getSystemVolumeMin(VolumeType.ALARM);
if (min >= 0) {
// 🎉 闹钟最小档位:${min}(传比它更小的值会被拒)
}🏷️ setFactoryResetDisabled — 设置恢复出厂设置入口禁用状态
java
int setFactoryResetDisabled(boolean disabled)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| disabled | boolean | true=隐藏恢复出厂入口,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 模块让你的设备管理更专业、更高效!
