API说明

1)蓝牙相关

遥控器是否已经配对

接口定义示例:

/**
 * @return 遥控器是否已经配对
 */
public boolean isRemoteControlPaired();

2)包管理

静默安装

接口定义示例:

/**
 * 静默安装
 * @param pkgPath app 绝对路径
 */
void silentInstallPkg(String pkgPath);

静默卸载

接口定义示例:

/**
 * 静默卸载
 * @param pkgName app 包名
 */
void silentUninstallPkg(String pkgName);

设置想要下次开机升级的 APK 路径

为了能在不提供新的固件的情况下升级系统中的App,并且不希望在使用过程中升级,打断用户使用.

Tips:需要在launcher启动前,完成app升级。

接口定义示例:

/**
 * 设置想要下次开机升级的 APK 路径
 * @param packagePath 要下次开机升级的 APK 绝对路径
 * @throws Exception 异常信息
 */
void setBootUpgradePackagePath(String packagePath) throws Exception;

系统设置页面跳转方式

需要在我们自己的设置页面打开系统的某些页面,麻烦提供打开的方式,目前暂时需要如下页面:

  • WIFI
  • Bluetooth
  • 系统升级
  • 亮度模式
  • 视频设置
  • 系统信息
  • 按键音
  • 投影方式
  • 启动方式
  • Miracast
  • 对焦设定
  • 设备名称
  • 恢复出厂

3)设备相关

获取光机当前的状态(已提供)

接口定义示例:

/**
 * 获取光机当前的状态
 * @return true:开 false:关
 */
boolean isDlpStateOn();

设置光机开关(已提供)

接口定义示例:

/**
 * 设置光机亮或者不亮(开或关)
 * @param isOn true:开 false:关
 */
void setDlpState(boolean isOn);

设置光机亮度

接口定义示例:

/**
 * @param led R、G、B 灯中的某一个
 * @param value 亮度
 */
public void setOptoBrightness(int led, int value);

获取光机亮度

接口定义示例:

/**
 * @param led R、G、B 灯的某一个
 */
public int getOptoBrightness(int led);

重启机器

接口定义示例:

/**
 * 重启机器
 * @throws Exception 命令执行异常
 */
void reboot() throws Exception;

关机

接口定义示例:

/**
 * 关机
 * @throws Exception 命令执行异常
 */
void shutdown() throws Exception;

获取投影状态(已提供)

接口定义示例:

/**
 * 获取投影状态(正装正投,正装背投)
 *
 * @return 投影仪当前的投影状态
 */
public static XXObject getProjectionMode() throws Exception {

其中 XXObject 为自己定义,已最终提供的接口为准

获取当前设备硬件ID

接口定义示例:

/**
 * 获取当前设备硬件ID
 *
 * @return machineId
 */
public String getMachineId() throws Exception;

获取开机类型

接口定义示例:

/**
 * 获取开机类型
 *
 * @return 0x01:  "红外开机"; 0x02: "按键开机"; 0x03: "上电开机"; 0x04: "RTC定时开机";
 */
public static String getBootMode() throws Exception;

进入音响模式

接口定义示例:

/**
 * 进入音响模式
 */
void startAudioMode();

当前是否处于音响模式

接口定义示例:

/**
 * 当前是否处于音响模式
 */
boolean isAudioMode();

遥控器语音键监听(GlobalKey 需配置)

提供接口监听遥控器语音按键 ACTION_DOWN 和 ACTION_UP,用于支持语音控制

调节灯光值

接口定义示例:

/**
 * @param pwmled 用于调节 R、G、B、W 四个灯的哪个
 * @param value 占空比,取值 [0, 100]
 */
public void changeLight(int pwmled, int value);

获取每个灯当前灯光值

接口定义示例:

/**
 * @param pwmled 用于获取 R、G、B、W 四个灯的哪个
 * @return 占空比,取值 [0, 100]
 */
public int getLightValue(int pwmled);

4)闹钟相关

是否开启定时开机闹钟

接口定义示例:

/**
 * 是否开启定时开机闹钟
 *
 * @param enable 是或否
 */
public static void enableBootTime(boolean enable) throws Exception;

定时开机设置

支持场景示例: 用户A 需要在每周 周二、周三 9:00 定时开机

接口定义示例:

/**
 * @param hour 24小时制,设定定时开机小时
 * @param minute 分钟
 * @param cycle 一周中哪几天支持定时开机
 */
public void setBootTime(int hour, int minute, List<Integer> cycle) throws Exception;

其中 cycle 表示一周中哪几天支持定时开机

设置后按周循环

获取当前设定的定时开机设置

接口定义示例:

/**
 * @return 返回设定的数据
 */
public XXObject getBootTime() throws Exception;

5)画面校正相关

控制光机角度(马达有声音,但不移动)

接口定义示例:

/**
 * 控制马达状态
 * @param status 马达状态,向上调整、向下调整、停止调整
 */
void controlMotor(int status);

梯形校正设置

接口定义示例:

/**
 * @param position 选择调整点,左上、右上、左下、右下
 * @param horizontalValue 水平方向的调整比例 0~100 0为基准值,100为最大调整值
 * @param verticalValue 垂直方向的调整比例 0~100 0为基准值,100为最大调整值
 */
public static void setPointKeystone(int position, int horizontalValue, int verticalValue) throws Exception;

获取梯形校正数值

详细说明: 包含左上,右上,左下,右下的水平竖直方向的调整比例

6)OTA

服务端接口(百度提供)

接口返回:

{
  "code": 200,
  "message": "ok",
  "data": {
    "versionName": "V1.3.111",
    "updateInfo": "更新信息",
    "isFullPakageUpdate": true,
    "packageDownloadUrl":"https://xxxxxx",
    "packageDownloadMd5": "xxxxxxx",
    "upgradeMethod": "no_force_notice"
  }
}

versionName: 版本号信息

updateInfo: 更新信息

isFullPakageUpdate: 是否为全量包升级

packageDownloadUrl: 包下载地址,末尾要加上 ? 以作为终结符标志

packageDownloadMd5: 包的 md5 值

upgradeMethod: 推送方式[no_force_notice,force_update,force_popremind, no_force_popremind]分别对应:非强制升级,强制升级,强制升级并弹窗提示,非强制升级并弹窗提示

获取 OTA 升级信息

需要 OTA 升级时可以通过 广播 或者其他方式通知到其他 APP

7)系统日志

打开日志开关

接口定义示例:

public void startLogRecord();

关闭日志开关

接口定义示例:

public void stopLogRecord();

日志文件创建监听

接口定义示例:

public void registerListener(LogCreateListener listener);

日志文件创建时->回调日志文件全路径

当前是否打开了日志开关

接口定义示例:

public boolean isLogRecordRunning();

8)其他

配置APP打开时进入飞鼠模式

接口定义示例:

/**
 * @param pkg 包名
 */
public void addAppOnMouseMode(String pkg);

将APP移除飞鼠模式

接口定义示例:

/**
 * @param pkg 包名
 */
public void removeAppOnMouseMode(String pkg);

获取已经添加飞鼠模式的app列表

接口定义示例:

/**
 * @return List<String> 包名列表
 */
public List<String> getAppListOnMouseMode();

清空所有飞鼠模式app

接口定义示例:

public void clearAirMouse();

截屏

接口定义示例:

public Bitmap getScreenShot(int width, int height);

系统菜单中设置临时定时关机时发广播通知

如 15、20 等分钟后关机

发送广播进行通知,并携带 15、20 等时间参数

系统菜单中取消临时定时关机

取消临时定时关机时发送广播通知

更改开机动画或视频

详细描述: 更改开机动画,将想要替换的动画和视频以指定格式存入机器中,然后将绝对路径输入。支持多个视频以及多张图 片,多张图片将采用轮播的模式,视频会循环播放直到机器启动。 指定格式: Andorid bootAnimation.zip 标准格式。

接口定义示例:

/**
 * 更改开机动画或视频
 * @param path 动画或视频的绝对路径
 */
void changeBootAnimation(String path) throws Exception