ARTICLE · 1017638
163个API开放给二次开发:商用安卓播放盒兼顾信发与设备控制

每日精选嵌入式资讯 · 官方定期推送

定昌电子|163个API开放给二次开发:商用安卓播放盒兼顾信发与设备控制
定昌电子合作的许多大型集团企业,或者集成商、算法商,有部分项目需求是自研信发软件或播控软件,这种情况下可以用安卓播放盒的安卓系统API来做二次开发,全程跑通硬件、上层应用APK以及B/S云服务平台。
定昌电子目前针对安卓播放盒提供了一套较完整的开放二次开发API,共163个接口,并按照系统、时间、显示、网络、文件与硬件IO、媒体、其他工具7大类进行整理,为企业自研信发系统、播控软件以及行业应用提供底层接口支持。
商显项目通常分成三层:底层硬件、安卓系统和上层应用。硬件负责显示、网络、USB、摄像头、GPIO等功能;安卓系统负责设备运行环境;真正决定项目业务逻辑的,则是客户自己的APK或者B/S云平台。
例如一家连锁零售企业,可能希望所有门店播放盒统一连接自己的服务器,由平台下发广告内容,并根据设备编号、网络状态、屏幕状态进行远程管理。



另外部分主控板型号固件支持内置谷歌GMS服务,建议选RK3568的盒子方案,有完整的Android 11 GMS包可以直接刷入,支持海外信发播放盒的开发适用。
定昌电子的安卓播放盒系列产品,均提供了完善的安卓API,以下是API相关列表:
1.初始化 导入包:import ZtlApi.ZtlManager;
2.声明并实例化 ZtlManager 对象:
ZtlManager.GetInstance().setContext(MainActivity.this);
//或ZtlManager.GetInstance().setContext(getApplicationContext());
支持校验:部分固件依赖助手服务,adb 校验命令:adb shell pm path com.ztl.helper,输出包路径代表支持;无输出则固件不支持.
1、系统相关 API
函数签名 | 参数 | 返回值 | 功能说明 | 注意事项 |
String getJARVersion() | 无 | String | 获取 Jar 版本号 | |
static String getDeviceVersion() | 无 | String | 获取设备型号 | 用于板子适配 |
static String getAndroidVersion() | 无 | String | 获取 Android 系统版本 | |
int getSDKVersion() | 无 | int | 获取系统 SDK 版本 | |
String getDeviceID() | 无 | String | 获取设备唯一序列号 | 设备唯一识别 ID |
long getTotalInternalMemorySize() | 无 | long | 内部存储总大小 | 单位字节,÷1024/1024/1024 转为 GB |
long getFreeMemory() | 无 | long | 内部剩余存储空间 | 单位字节 |
long getFreeMemorySize() | 无 | long | 剩余运行内存 | 用于排查内存泄漏 |
String getInternalSDCardPath() | 无 | String | 获取内部 SD 卡路径 | |
String getExternalSDCardPath() | 无 | String | 获取外部 TF 卡路径 | |
int getUSBDiskCount() | 无 | int | 获取已插入 U 盘数量 | |
String getUSBDisk(int index) | index:U 盘索引 | String | 获取指定索引 U 盘路径 | 多 U 盘场景 |
String getUsbStoragePath() | 无 | String | 获取 U 盘存储路径 | U 盘插入一段时间才返回有效值,无 U 盘返回 null |
void sleep() | 无 | void | 系统休眠 | 固件支持;如需 Activity 保持运行添加 WAKE_LOCK 权限 + FLAG_KEEP_SCREEN_ON |
void awake() | 无 | void | 系统唤醒 | 固件支持 |
void shutdown() | 无 | void | 系统关机 | 固件支持;OTG 接电脑会变成重启 |
void reboot(int delay) | delay:延迟秒数,0 立即重启 | void | 延迟重启系统 | 固件支持 |
void startScreenShot(String path,String fileName) | path 保存路径;fileName 文件名,后缀必须.png | void | 截屏保存到指定路径 | |
void setLauncher(String pkgage,String Activity) | pkgage 桌面包名;Activity 桌面类名;传 null 恢复默认桌面 | void | 设置系统桌面 | 目标 App 需要配置 HOME、DEFAULT 的 category;固件支持 |
void setDesktop(String pkgage) | pkgage 桌面包名;null 恢复默认 | void | 普通 App 设置为系统桌面 | 固件支持 |
String getDesktop() | 无 | String | 获取当前桌面包名 | |
boolean isAppExist(String pkgName) | pkgName:App 包名 | boolean | 判断 App 是否安装 | true 存在,false 不存在 |
void resetSystem() | 无 | void | 恢复出厂设置 | 固件支持 |
void startSettings() | 无 | void | 打开系统设置界面 | |
void startWifiSettings() | 无 | void | 打开 Wifi 设置界面 | |
void openSystemBar(boolean bOpen) | bOpen true 显示;false 隐藏 | void | 控制导航栏状态栏显示隐藏 | |
boolean isSystemBarOpen() | 无 | boolean | 获取状态栏导航栏状态 | true 显示 false 隐藏 |
void openUsbDebug(boolean bOpen) | bOpen true 开启;false 关闭 | void | 设置 USB 调试开关 | |
boolean isUsbDebugOpen() | 无 | boolean | 查询 USB 调试是否开启 | |
boolean setUSBtoPC(boolean toPC) | toPC true 开启 OTG 连 PC;false 关闭 | boolean | OTG 功能开关 | 发布版本建议关闭 |
boolean getUSBtoPC() | 无 | boolean | 获取 OTG 口连接状态 | |
void setBuildSerial(String sn) | sn 序列号字符串 | void | 设置 Build.SERIAL 序列号 | 多用于微信刷脸主板序列号设置 |
String getBuildSerial() | 无 | String | 读取设置的序列号 | 不保证唯一,唯一识别请使用 getDeviceID () |
static String get4gStatic(Context context) | context 上下文 | String | 获取 4G 故障代码 | 返回码:0 正常,-7 无 SIM 卡等;null 代表助手版本过低 |
boolean hasWatchDog() | 无 | boolean | 判断系统是否支持看门狗 | true 支持 |
boolean openWatchDog() | 无 | boolean | 打开看门狗自动喂狗 | 默认 1 分钟喂 3 次 |
boolean closeWatchDog() | 无 | boolean | 关闭看门狗停止喂狗 | |
boolean isRunWatchDog() | 无 | boolean | 看门狗是否正在运行 | |
String watchDogValue() | 无 | String | 读取看门狗状态值 | 1 打开,2 喂狗,3 关闭 |
void lockScreenSettings(boolean bEnable, String password) | bEnable 是否启用锁屏;password 锁屏密码 | void | 配置锁屏密码 | 配置完成需调用 lockScreen () 才锁屏,固件支持 |
void lockScreen() | 无 | void | 执行锁屏 | 固件支持 |
static String execRootCmd(String cmd) | cmd 要执行的 root 命令 | String | 执行 root 命令,获取输出返回值 | |
int execRootCmdSilent(String cmd) | cmd 要执行 root 命令 | int | 静默执行 su 命令,无输出返回 | |
void setBootPackageActivity(String pkgName,String pkgActivity) | pkgName 自启包名;pkgActivity 自启 Activity 类名 | void | 设置开机自启 App,仅支持一个 App,多次调用覆盖 | |
String getBootPackageName() | 无 | String | 获取开机自启 App 包名 | |
String getBootPackageActivity() | 无 | String | 获取开机自启 App 类名 | |
void startActivity(String pkgName,String pkgActivity) | pkgName 目标包名;pkgActivity 目标类名 | void | 启动其他 App | |
void installAppSilent(String filePath) | filePath APK 完整路径 | void | root 权限静默安装 APK | 需要 root 权限 |
void installApp(String filePath) | filePath APK 完整路径 | void | 无需 root 静默安装 | 依赖固件支持 |
void uninstallAppSilent(String packageName) | packageName 待卸载包名 | void | 静默卸载 App | |
void installAppSilentAndRebootSystem(String filePath,int reboot_in_sec) | filePathAPK 路径;reboot_in_sec 安装成功后延迟重启秒数 | void | 静默安装并延迟重启 | 固件支持,非必要不推荐 |
void installAppAndStartUp(String filePath,String pkgName) | filePathAPK 路径;pkgName 安装后启动包名 | void | 安装完成自动启动 App | 固件支持 |
void keepActivity(String pkgName) | pkgName 保活 App 包名 | void | App 前台保活,被后台 / 关闭自动拉起 | 依赖 com.ztl.appservice;操作设置页面前务必调用 unKeepActivity 取消保活 |
void keepActivity(String pkgName, int sec) | pkgName 包名;sec 保活间隔,最小 2 秒 | void | App 前台保活,自定义拉起间隔秒数 | |
void unKeepActivity() | 无 | void | 取消 App 前台保活 | |
void keepService(String packageName, String service) | packageName 所属包名;service 完整服务类名 | void | 保活后台服务 | |
void keepService(String packageName, String service, int sec) | 包名,服务类名,保活间隔 >=2s | void | 自定义间隔保活服务 | |
void unKeepService() | 无 | void | 取消服务保活,不会杀死正在运行的服务 | |
void WatchDog() | 无 | void | APP 接管硬件看门狗,调用一次喂狗一次 | 硬件、固件支持;拔掉跳线帽才生效;建议 20s 调用一次,200s 不喂狗自动重启 |
void factoryReset() | 无 | void | 恢复出厂设置 | 助手版本 >=20260711,新版 ZtlApi.jar |
2 时间相关 API
函数签名 | 参数 | 返回值 | 功能说明 | 注意事项 |
String getSystemDate() | 无 | String | 获取系统日期 | 格式yyyy/MM/dd |
String getSystemTime() | 无 | String | 获取系统时间 | 格式HH:MM:ss |
void syncNetworkTime() | 无 | void | 强制同步网络时间 | 固件支持 |
void syncNetworkTimePeroid(int peroidInMinute) | peroidInMinute 同步周期,单位分钟 | void | 设置定时同步网络时间间隔 | 固件支持 |
void setSystemTime(Calendar cal) | cal Calendar 日历对象 | void | 设置系统时间 | 固件支持 |
void setSystemTime(long timeinmili) | timeinmili 毫秒时间戳 | void | 通过时间戳设置系统时间 | 固件支持 |
boolean isAutoTimezone() | 无 | boolean | 判断时区是否自动获取 | true 自动;false 手动 |
void setAutoTimezone(boolean bAuto) | bAuto true 自动时区;false 手动 | void | 时区自动开关 | 需要系统签名 / WRITE_SETTINGS 等权限 |
boolean isAutoDateTime() | 无 | boolean | 判断系统日期时间是否自动同步 | true 自动 |
void setAutoDateTime(boolean bAuto) | bAuto true 开启自动时间;false 关闭 | void | 开启关闭自动确定日期时间 | 系统权限 |
void setSchedulePowerOff(int hour, int minute, boolean enableSchedulPowerOff) | 时,分,使能开关 | void | 每日定时关机 | 接口废弃,使用 setPoweroffCustom |
void setSchedulePowerOn(int hour, int minute, boolean enableSchedulPowerOn) | 时,分,使能开关 | void | 每日定时开机 | 接口废弃,使用 setPoweronCustom |
void setPowerOffAlarm(int year, int month, int day, int hour, int minute, boolean enableSchedulPowerOff) | 年月日时分,使能 | void | 一次性定时关机 | 接口废弃,使用 setPoweroffOnce |
void setPowerOnAlarm(int year, int month, int day, int hour, int minute, boolean enableSchedulPowerOn) | 年月日时分,使能 | void | 一次性定时开机 | 接口废弃,使用 setPoweronOnce |
void setPoweroffCustom(int hour, int minute, int weekDays, boolean bEnable) | 时,分,星期掩码,使能 | void | 自定义周期定时关机 | weekDays 位掩码:周日 = 1,周一 = 2,周二 = 4,周三 = 8,周四 = 16,周五 = 32,周六 = 64;127 代表每天;0 执行一次 |
void setPoweronCustom(int hour, int minute, int weekDays, boolean bEnable) | 时,分,星期掩码,使能 | void | 自定义周期定时开机 | |
void timingReboot(int hour, int minute, int week, boolean enable) | 时,分,星期掩码,使能 | void | 周期定时重启 | |
void timingRebootAlarm(int year, int month, int day, int hour, int minute, boolean enable) | 年月日时分,使能 | void | 一次性定时重启 | |
void setTimeZone(String timeZone) | timeZone 时区字符串如Asia/Shanghai | void | 手动设置时区 | 助手版本 >=20250829 |
3 显示相关 API
函数签名 | 参数 | 返回值 | 功能说明 | 注意事项 |
String getDisplayMode() | 无 | String | 获取屏幕分辨率字符串 | |
int getDisplayHeight() | 无 | int | 获取屏幕 Y 轴像素(高度) | |
int getDisplayWidth() | 无 | int | 获取屏幕 X 轴像素(宽度) | |
int getDisplayDensity() | 无 | int | 获取屏幕 dpi 密度 | |
void setDisplayDensity(int dips) | dips dpi 值 (120/160/240/320 或自定义) | void | 设置屏幕显示密度 | |
void reverseBrighness(boolean true_or_false) | true_or_false 是否背光反向 | void | 设置背光反向,解决亮度调节反向问题 | |
boolean isReverseBrighness() | 无 | boolean | 查询背光是否反向 | |
int getSystemBrightness() | 无 | int | 获取当前屏幕亮度值 | |
int getSystemMaxBrightness() | 无 | int | 获取系统最大亮度 | |
void increaseBrightness() | 无 | void | 亮度 + 1 | 固件支持;HDMI/VGA 不支持 |
void decreaseBrightness() | 无 | void | 亮度‑1 | 固件支持;HDMI/VGA 不支持 |
void setBrightness(int brightness) | brightness 0‑255 亮度值 | void | 设置屏幕亮度 | 0‑255;HDMI/VGA 不支持 |
void setDisplayOrientation(int rotation) | rotation:0/90/180/270 | void | 设置主屏系统旋转角度 | 优先 App 内适配,不建议系统级旋转 |
void setExtendDisplayOrientation(int rotation) | rotation:0/90/180/270 | void | 设置副屏旋转角度 | |
int setDisplayOrientation(int screen, int rotation) | screen 屏幕编号 (-1 全部,0 主屏,1 副屏…); rotation 角度 | int | 多屏幕分别设置旋转 | 返回 0 成功;‑1 不支持 |
int getDisplayOrientation() | 无 | int | 获取主屏旋转角度,返回 0/90/180/270 | |
int getDisplayOrientation(int screen) | screen 屏幕编号 | int | 获取指定屏幕旋转角度 | ‑1 代表不支持 |
void setTouchOrientation(int orientation, boolean rebootnow) | orientation 触摸旋转角度;rebootnow true 立即重启 false 不重启 | void | 设置触摸旋转方向,重启生效 | 仅触摸屏完全颠倒场景使用 |
int getTouchOrientation() | 无 | int | 获取触摸旋转角度 | |
String[] getScreenModes() | 无 | String[] | 获取设备支持分辨率列表 | 3288‑5.1、3288‑7.1 返回 null;HDMI 未接会为空 |
void setScreenMode(String mode) | mode 分辨率字符串,例1920x1080@60p | void | 设置输出分辨率,重启生效 | LVDS 屏参替换方式 |
void setWallpaper(String filePath) | filePath 壁纸图片路径 | void | 设置系统桌面壁纸 | 固件支持 |
void setFontSize(int index) | index:1 较小,2 正常,3 较大,4 最大 | void | 设置系统字体大小 | |
int getDisplayCount() | 无 | int | 获取固件支持屏幕总个数 |
4 网络相关 API
函数签名 | 参数 | 返回值 | 功能说明 | 注意事项 | |
String getMacAddress() | 无 | String | 获取 eth0 的 MAC 地址 | ||
String getLocalIpAddress() | 无 | String | 获取 IPv4 地址 | 需要ACCESS_NETWORK_STATE权限 | |
int getNetWorkType() | 无 | int | 获取当前网络类型 | -1 未知,0 以太网,1WiFi,2‑2G,3‑3G,4‑4G,5‑5G;需要ACCESS_NETWORK_STATE | |
void keepWifiConnect(String SSID, String password) | SSIDWiFi 名称;password 密码 | void | 指定 WiFi 断线自动重连 | 固件支持,信号丢失可连其他 WiFi | |
void stopKeepWifiConnect() | 无 | void | 停止 WiFi 保连,不会断开当前 WiFi | 固件支持 | |
void setNetAdb(boolean bEnable) | bEnable true 开启网络 adb false 关闭 | void | 网络 ADB 开关,调试用,发布建议关闭 | ||
void openAp(String ssid, String psw) | ssid 热点名;psw 热点密码 | void | 打开 WiFi 热点 | 固件支持;热点名小于 6 位自动追加 MAC 后缀 | |
void closeAp() | 无 | void | 关闭 WiFi 热点 | 固件支持 | |
String getIPv4(String nettype) | nettype 网卡名 eth0/wlan0/ppp0 | String | 获取指定网卡 IPv4 地址 | ||
void setEthIP(boolean bStatic, String ip, String mask, String gate, String dns, String dns2) | bStatic true 静态 IP falseDHCP;ip/mask/gate/dns/dns2 参数 DHCP 传 null | void | 设置以太网 IP (单网卡) | 固件支持 | |
void setEthIP(boolean bStatic,String name, String ip, String mask, String gate, String dns, String dns2) | bStatic;网卡名;ip、掩码、网关、dns;DHCP 全部传 null | void | 多网卡以太网配置 | 固件版本 >=20220121 | |
void setWifiIP(String ssid, String psw, boolean bStatic, String ip, String mask, String gate, String dns, String dns2) | ssid、pswWiFi 账号密码;bStatic 静态开关,网络参数 | void | 连接 WiFi 并设置静态 / DHCP | 固件支持,未连接 WiFi 时自动连接目标 WiFi | |
void setWifiApConfig(String SSID, String Password, int channel, int WifiMode, boolean enable) | 热点名、密码、信道、WifiMode (0‑2.4G,1‑5G)、enable 开关 | void | 高级热点配置,设置频段信道 | ||
void enable4GReset(boolean bEnable) | bEnable true 开启 4G 断线重连 false 关闭 | void | 4G 模块断线自动重连开关 | 固件支持,build.prop 可持久配置 persist.ztl.4greset | |
String getImei() | 无 | String | 获取 4G 模块 IMEI | 权限READ_PHONE_STATE | |
String getSimTel() | 无 | String | 获取 SIM 卡号码 | 权限READ_PHONE_STATE | |
String getSimIccid() | 无 | String | 获取 SIM 卡 ICCID | 权限READ_PHONE_STATE | |
String getSimImsi() | 无 | String | 获取 SIM 卡 IMSI | 权限READ_PHONE_STATE | |
String getSimOperator() | 无 | String | 获取 SIM 卡运营商信息 | 权限READ_PHONE_STATE | |
String getBaseBand() | 无 | String | 获取 4G 模块基带版本 | ||
void setAPN(String apn) | apn APN 字符串 | void | 设置 4G 的 APN | 调用前建议先执行 hasAPN 查询支持状态 | |
String hasAPN(String apn) | apn 待查询 APN 名称 | String | 查询 APN 是否存在 | null 未初始化,‑1 不存在,其他代表存在 |
5 文件与硬件 IO API
函数签名 | 参数 | 返回值 | 功能说明 | 注意事项 |
String getFileType(String filePath) | filePath 文件完整路径 | String | 获取文件后缀名 | |
boolean isExist(String path) | path 文件 / 目录路径 | boolean | 判断文件是否存在 | true 存在 false 不存在 |
int gpioStringToInt(String port) | portGPIO 字符串如GPIO7_A5 | int | 将 GPIO 字符串转为数字编号 | |
void setGpioValue(String port, int value) | portGPIO 字符串;value1 高电平,0 低电平 | void | 设置 GPIO 输出电平 | 简易接口,高性能场景建议使用 Gpio 类 |
int setGpioValue(int type, boolean bIn, boolean bHigh) | typeGPIO 数字编号;bIn true 输入 false 输出;bHigh true 高 false 低 | int | 设置 GPIO 方向和电平 | 返回‑1IO 错误;‑2 不支持;1 成功 |
int getGpioValue(String port, String direction) | portGPIO 字符串;directionin输入 /out输出 | int | 读取 GPIO 电平 | |
int getGpioValue(int type) | typeGPIO 数字编号 | int | 读取 GPIO 状态 | ‑1IO 错误,‑2 不支持;1 输入高,2 输入低,3 输出高,4 输出低 |
void setGpioDirection(String port, String direction) | portGPIO 字符串;direction in/out | void | 设置 GPIO 输入输出方向 | |
String getGpioDirection(String port) | portGPIO 字符串 | String | 获取 GPIO 方向;返回in或out | |
boolean openZtlI2C(String filePath, int chipID, int addrLen) | filePathI2C 节点;chipID 器件地址;addrLen 地址长度 | boolean | 打开 I2C 器件 | 简易接口,高性能建议 ZtlI2C 类;不要冲突系统 I2C 地址 |
void flashWrite(int addr, byte[]data, int nCount) | addr 寄存器地址;data 字节数组;nCount 写入长度 | void | 铁电存储器写 | 必须先 openZtlI2C 打开 I2C 总线 |
byte[] flashRead(int addr, int nCount) | addr 寄存器地址;nCount 读取字节数 | byte[] | 铁电存储器读 | 必须先 openZtlI2C |
void chipWrite(int cmd, byte[] data, int nCount) | cmd 命令码;data 数据;nCount 长度 | void | 加密芯片写接口 | I2C 必须提前打开 |
byte[] chipRead(int cmd, int ncount) | cmd 命令码,读返回传‑1;ncount 读取长度 | byte[] | 加密芯片读接口 | 写后读建议延时≥10ms;I2C 提前打开 |
void closeI2C() | 无 | void | 关闭 I2C 器件句柄 | |
int setUninstallPackage(String packageS) | packageS 目标 App 包名 | int | 设置 App 禁止卸载 | ‑1 不支持;‑2 失败;1 成功;‑3 异常 |
String getUninstallPackage() | 无 | String | 获取禁止卸载 App 包名 | 返回包名;1 系统不支持,error 异常 |
String getADCValue() | 无 | String | 读取 ADC 采样数值 |
6 媒体(音量、相机)API
函数签名 | 参数 | 返回值 | 功能说明 | 注意事项 |
int getSystemMaxVolume() | 无 | int | 获取媒体音量最大值 | |
int getSystemCurrenVolume() | 无 | int | 获取当前媒体音量 | |
int setRaiseSystemVolume() | 无 | int | 媒体音量 + 1 | 0 成功‑1 失败 |
int setLowerSystemVolume() | 无 | int | 媒体音量‑1 | 0 成功‑1 失败 |
int setSystemVolumeIndex(int index) | index音量等级 | int | 设置媒体音量 | 0 成功‑1 失败 |
void setVolume(int streamType, int value) | streamType音量类型 (2 铃,3 媒体,4 闹钟);value 音量值 | void | 设置指定类型音量 | 固件支持 |
int getVolume(int streamType) | streamType音量类型编号 | int | 读取指定类型音量值 | |
int getMaxVolume(int streamType) | streamType音量类型编号 | int | 读取该类型最大音量 | |
void setCameraOrientation(int orientation) | orientation角度 0/90/180/270 | void | 设置系统相机旋转角度 | 仅系统相机 App 生效 |
int getCameraOrientation() | 无 | int | 获取相机旋转角度 | |
boolean isCameraMirror() | 无 | boolean | 判断相机是否镜像 | true 镜像 |
void setCameraMirror(boolean bMisrror) | bMisrror true 开启镜像 false 关闭 | void | 设置相机镜像开关 |
7 其他工具 API
函数签名 | 参数 | 返回值 | 功能说明 | 注意事项 |
void openMonitor() | 无 | void | 打开性能监控小工具 | 固件支持 |
String[] getCPUFreq() | 无 | String[] | 获取 CPU 全部可用频率 | 固件支持,设置 CPU 频率必须使用数组内的值 |
void setCPUFreq(String cpuFreq) | cpuFreq 频率字符串 | void | 设置 CPU 运行频率 | 必须为 getCPUFreq 返回值;过低会造成卡顿 |
float getCPUUsage() | 无 | float | 获取整机 CPU 总使用率百分比 | |
float getProcessCpuUsage() | 无 | float | 获取当前 App 进程 CPU 使用率 | |
float getMemoryUsage() | 无 | float | 整机内存使用率百分比 | |
float getNpuUsage() | 无 | float | NPU 算力使用率百分比 | |
void doUpdateHelper() | 无 | void | 自动检测更新助手服务 | 仅公版固件可用,定制板不可线上更新;助手版本≥20251021 |
附注
标注【固件支持】的接口依赖com.ztl.helper助手服务;
adb 校验是否支持助手:adb shell pm path com.ztl.helper,有包路径输出代表支持;
部分接口需要AndroidManifest.xml 声明权限;
硬件看门狗:需要拔掉板子跳线帽,否则看门狗不生效。
定昌电子专注于嵌入式解决方案的研发与加工制造17年,目前AI算力板已成功应用于智能医疗设备、工业控制系统、商业显示设备、智能安防系统等多个领域,积累了丰富的实战经验。定昌拥有完整研发团队、先进生产设备和品质管控体系,目前在广州和湖南有超30000平的研发生产基地,十多条线SMT贴片线和插件线配置 290多 个员工,整条生产链路的人员配置也健全,分工非常明细:人事、跟单、 送货员、 企划、 仓库、 BOM 整理技术员,采购、IPQC,QC,QA、测试,工程师等,每条线都制定了严格的管控流程,配备完整的先进口生产测试设备仪器。




往/期/回/顾