FireflyApi2¶
1.概述¶
FireflyApi2 提供了部分系统接口以及封装了部分用户需要的功能接口,主要是为了让用户容易和简单的使用系统常用接口, 此文档只是对接口进行简单的说明,具体的使用参考 FireflyApi2Demo 的源码。
支持 rk3568/rk3566 Android11 平台所有系列机型
支持 rk3588 Android12 平台所有系列机型
2.资源下载和使用¶
使用 FireflyApi2 时先检查一下机器的固件是否是最新版本,最新版本的固件内置了基于 FireflyApi2 实现的 FireflyApi2Demo 应用,可以在[资源下载]
页面找到对应的机型查看并下载最新固件,同时也可以同步SDK到最新提交,具体先选择对应机型的[wiki],然后在Android开发
->编译Android固件
里面找到同步的方式。
FireflyApi2Demo 源码下载:
[FireflyApi2Demo](提取码:1234)
Demo 主要包含 fireflyapi2.aar 和 FireFlyApi2Demo 的源码,其结构目录如下:
fireflyapi2demo/
├── app
│ ├── build.gradle
│ ├── libs
│ │ └── fireflyapi2.aar
│ ├── proguard-rules.pro
│ └── src
├── build.gradle
├── gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle
2.1 FireflyApi2Demo 应用简述¶
FireflyApi2Demo 是基于 FireflyApi2 的接口实现的 Demo 程序,用户可参考 Demo 的源码实现自己所需的功能。 当使用最新版本的固件时,里面会内置 FireflyApi2Demo 的应用。
应用如图
点击进入应用后会有相应的接口实现列表如图
2.2 FireflyApi2的使用¶
2.2.1 Android Studio¶
Android Studio 是谷歌推出的一个 Android 集成开发工具,基于IntelliJ IDEA,类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
2.2.2 项目中导入fireflyapi2.aar¶
FireflyApi2Demo 是给用户呈现出接口相应的功能,用户如需要编写自己的应用程序,可将 fireflyapi2.aar 放在 libs 目录下:
app/
├── build.gradle
├── libs
│ └── fireflyapi2.aar
然后配置 build.gradle 文件,即可使用 FireflyApi2 定制应用程序。
dependencies {
......
+ implementation files('libs/fireflyapi2.aar')
}
3.FireflyApi2 接口说明¶
要使用 FireflyApi2 的接口需要先导入依赖并获取实例化对象:
import com.firefly.api2.FireflyApi2;
public class *** {
......
private static FireflyApi2 mFireflyApi2 = FireflyApi2.getInstance();
......
}
3.1 系统信息¶
1. FireflyApi2版本信息¶
函数:public String getFireflyApiVersion()
描述:FireflyApi2 版本信息
范例:
String version = mFireflyApi2.getFireflyApiVersion();
2. 获取设备型号¶
函数:public String getAndroidModel()
描述:获取设备型号
范例:
String model= mFireflyApi2.getAndroidModel();
3. 获取设备Android系统的版本¶
函数:public String getAndroidVersion()
描述:获取设备Android系统的版本
范例:
String version= mFireflyApi2.getAndroidVersion();
4. 获取设备RAM大小(MB)¶
函数:public long getRamSpace()
描述:获取设备RAM大小,单位为MB
返回:返回RAM大小,单位为MB
范例:
long ram = mFireflyApi2.getRamSpace();
5. 获取设备RAM大小(GB)¶
函数:public String getFormattedRamSpace()
描述:获取设备RAM大小,并格式化为String
返回:设备的RAM大小,String格式(1.5GB)
范例:
String ram = mFireflyApi2.getFormattedRamSpace();
6. 获取设备内置Flash大小(MB)¶
函数:public long getFlashSpace()
描述:获取设备内置Flash大小,单位为MB
返回:返回Flash大小,单位为MB
范例:
long flash = mFireflyApi2.getFlashSpace();
7. 获取设备内置Flash大小(GB)¶
函数:public String getFormattedFlashSpace()
描述:获取设备内置Flash大小,并格式化为String
返回:设备的Flash大小,String格式(15.5GB)
范例:
String ram = mFireflyApi2.getFormattedFlashSpace();
8. 获取设备固件内核版本¶
函数:public String getFormattedKernelVersion()
描述:获取设备固件内核版本
返回:内核版本
范例:
String kernel_version= mFireflyApi2.getFormattedKernelVersion();
9. 获取设备固件系统版本¶
函数:public String getAndroidDisplay()
描述:获取设备固件系统版本
返回:固件系统版本
范例:
String version= mFireflyApi2.getAndroidDisplay();
3.2 系统设置¶
1. 系统关机¶
函数:public void shutDown(boolean showConfirm)
描述:系统关机
参数:showConfirm 是否显示关机框
范例:
mFireflyApi2.shutDown(false);
2. 系统重启¶
函数:public void reboot()
描述:系统重启
范例:
mFireflyApi2.reboot();
3. 系统休眠¶
函数:public void sleep()
描述:系统休眠
范例:
mFireflyApi2.sleep();
4. 截屏¶
函数:public boolean takeScreenshot(String path,String name)
描述:截图并存储到指定路径
参数:path 存储路径
name 存储的文件名(暂时只支持png格式)
返回:截图是否成功true/false
范例:
mFireflyApi2.takeScreenshot("/sdcard/","123.png");
5. 屏幕旋转¶
函数:public boolean setRotation(int rotation)
描述:屏幕旋转
屏幕参数:rotation 屏幕方向
Surface.ROTATION_0
Surface.ROTATION_90
Surface.ROTATION_180
Surface.ROTATION_270
范例:mFireflyApi2.setRotation(Surface.ROTATION_0);
6. 获取屏幕方向¶
函数:public int getRotation()
描述:获取屏幕方向
返回:rotation 屏幕方向
Surface.ROTATION_0
Surface.ROTATION_90
Surface.ROTATION_180
Surface.ROTATION_270
范例:
int rotation = mFireflyApi2.getRotation();
7. 设置系统日期¶
函数:public boolean setSysDate( int year, int month, int day)
描述:设置系统日期
参数:year 年
month 月
day 日
返回:为true设置成功,为false设置失败
范例:
mFireflyApi2.setSysDate(2022,7,21);
8. 设置系统时间¶
函数:public boolean setSysTime( int hour,int minute,int second)
描述:设置系统时间
参数:hour 时
minute 分
second 秒
返回:为true设置成功,为false设置失败
范例:
mFireflyApi2.setSysTime(5,30,45);
9. 同步NTP服务器时间¶
函数:public boolean syncNtpTime( String ntpServer, int timeout)
描述:同步NTP服务器时间
参数:ntpServer 服务器
timeout 超时
返回:为true设置成功,为false设置失败
范例:
mFireflyApi2.syncNtpTime("time.windows.com", 30000);
10. 静默安装应用¶
函数:public boolean silentInstal(String path, IPackageInstallObserver observer)
描述:静默安装应用
参数:path apk路径
IPackageInstallObserver 处理返回的安装结果
返回:为true安装成功
范例:
mFireflyApi2.silentInstall("/sdcard/***.apk", new IPackageInstallObserver.Stub(){
@Override
public void packageInstalled(String packageName, int returnCode) {
Log.v("debug", "packageInstalled packageName:" + packageName + ",returnCode:" + returnCode);
}
});
11. 静默卸载应用¶
函数:public boolean silentUnInstall(String package_name, IPackageDeleteObserver observer)
描述:静默卸载应用
参数:package_name 为需要卸载应用的包名
IPackageDeleteObserver 处理返回的卸载结果
返回:卸载成功返回true,卸载失败返回false
备注:只支持卸载安装的应用,不支持卸载内置应用
范例:
mFireflyApi2.silentUnInstall("com.android.settings", new IPackageDeleteObserver.Stub() {
@Override
public void packageDeleted(String packageName, int returnCode) {
Log.v("debug", "packageDeleted packageName:" + packageName + ",returnCode:" + returnCode);
}
});
12. 运行shell命令¶
函数:public Command execCmd(String cmd)
描述:运行shell命令
参数:cmd shell命令
返回:Command input 输入命令
output 输出结果
exitStatus shell运行状态,为0是正常退出
范例:
mFireflyApi2.execCmd("ls");
13. su权限运行shell命令¶
函数:public static Command execSuCmd(String cmd)
描述:su权限运行shell命令
参数:cmd shell命令
返回:Command input 输入命令
output 输出结果
exitStatus shell运行状态,为0是正常退出
范例:
mFireflyApi2.execSuCmd("cat init.rk30board.rc");//init.rk30board.rc 默认权限750
14. 应用开机自启动¶
函数:public void setAppStartup(String packageName)
描述:第三方应用开机自启动
参数:packageName app 包名
范例:
mFireflyApi2.setAppStartup("com.tchip.testscheduleonoff");
15. 取消应用开机自启动¶
函数:public void cleanAppStartup()
描述:取消应用开机自启动
范例:
mFireflyApi2.cleanAppStartup();
3.3 硬件接口¶
3.3.1 GPIO¶
1. gpio 控制¶
函数:public boolean gpioCtrl(int gpio, String direction, int value)
描述:控制 gpio
参数:gpio gpio 编号
direction in, out
value 1/0
返回:true (成功)/ false(失败)
范例:
boolean success = mFireflyApi2.gpioCtrl(150,"out",1);//GPIO4_C6的 gpio 节点为150
2. gpio 读值¶
函数:public int gpioRead(int gpio)
描述:读取 gpio 的值
参数:gpio gpio 编号
返回:读取失败时返回-1
范例:
int gpioValue = mFireflyApi2.gpioRead(150);//GPIO4_C6的 gpio 节点为150
3. 检查gpio口是否被系统占用¶
函数:public boolean isGpioOccupied(int gpio)
描述:检查 gpio 口是否被系统占用
参数:gpio gpio 编号
返回:true(被占用)/false(空闲)
范例:
boolean occupied = mFireflyApi2.isGpioOccupied(150);//GPIO4_C6的 gpio 节点为150
4. 解析gpio的节点值¶
函数:public int gpioParse(String gpioStr)
描述:解析 gpio 的节点值,例 GPIO4_C6 转换为节点150
参数:gpioStr
返回:解析失败返回-1
范例:
int gpioValue= mFireflyApi2.gpioParse("GPIO4_C6");//GPIO4_C6的 gpio 节点为150
3.3.2 串口使用¶
导入头文件
import com.firefly.api2.serialport.SerialHelper2;
根据路径和波特率打开串口,并设置回调函数
private SerialHelper2 serialHelper; private boolean openSerialPort(String path,int baudrate) { ...... serialHelper = new SerialHelper2(path, baudrate) { @Override protected void onDataReceived(final byte[] data) { //16进制 Log.v(TAG,serialHelper.getPort()+" onDataReceived:"+ ByteUtil.ByteArrToHex(data).trim()); //字符串 Log.v(TAG,serialHelper.getPort()+" onDataReceived-String:"+ new String(data, 0,data.length).trim()); } }; try { serialHelper.open(); return serialHelper.isOpen(); } catch (IOException e) { e.printStackTrace(); } return false; }
向串口发送字符串
serialHelper.sendTxt("112233445566");
向串口发送16进制
//如 0x11,0x22,0x33,0x44,0x55,0x66 serialHelper.sendHex("112233445566");
关闭串口
serialHelper.close();
3.3.3 CAN使用¶
在使用之前需要了解 CanFilter,CanMessage,CanMessageListener,CanSocket 四个类的主要作用和用法。
CanFilter¶
构造函数:public CanFilter(final int mask, final int filter)
描述:用于存储过滤接收帧信息
参数:mask 掩码
filter 帧id
范例:
//无接收过滤信息
CanFilter[] nofilters = new CanFilter[0];
//仅接收id为 0x400 和 0x410的帧
CanFilter[] filters = new CanFilter[]{new CanFilter(0xfff, 0x400), new CanFilter(0xfff, 0x410)};
CanMessage¶
构造函数:public CanMessage(final boolean isEFF, final boolean isRTR, final int id, final byte[] data)
描述:用于存储帧信息
参数:isEFF true 为扩展帧,false 为标准帧
isRTR true 为远程帧,false 为数据帧
id 帧ID
data 帧数据
范例:
存储一帧信息,id 为0x100, 标准帧,数据帧,数据为{0x01,0x02,0x03,0x04,0x05,0x6,0x7},长度为7的帧信息
boolean isEFF = false;
boolean isRTR = false;
int canid = 0x100;
byte[] data = new byte[] {(byte)1, (byte)2, (byte)3, (byte)4, (byte)5, (byte)6,(byte)7};
CanMessage message = new CanMessage(isEFF, isRTR, canid, data);
获取帧信息 ID
函数:public final int getRawId() 描述:获取帧 ID 范例: int can_id = message.getRawId();
获取帧信息数据
函数:public final byte[] getData() 描述:获取帧信息 范例: byte[] data = message.getData();
帧信息
函数:public final String toString() 描述:帧信息 范例: Log.i("debug", message.toString());
CanMessageListener¶
函数:public void rxedCanMessage()
描述:用于接收到 can 信息的处理接口函数
范例:
public class TestCanHelper implements CanMessageListener {
public final void rxedCanMessage(final CanMessage message)
{
Log.i(TAG, message.toString());
}
}
CanSocket¶
打开can设备
函数:public int canDeviceOpen(final String canDevice)throws IOException 描述:打开 can 设备,获取 socket 套接字 参数:canDevice can通道 返回:socket 套接字,失败返回-1 范例: int socket = mCanSocket.canDeviceOpen("can0");
初始化接收任务
函数:public void initReceiveTask(final int socket, CanFilter[] filters) 描述:初始化接收任务 参数:socket 套接字 filters 过滤器 范例: mCanSocket.initReceiveTask(mRxSocket, filters);
开始接收任务
函数:public boolean startReceiveTask() 描述:开始接收任务 返回:true(成功)/false(失败) 范例: boolean result = mCanSocket.startReceiveTask();
停止接收任务
函数:public boolean stopReceiveTask() 描述:停止接收任务 返回:true(成功)/false(失败) 范例: boolean result = mCanSocket.stopReceiveTask();
发送帧信息
函数:public void transmit(CanMessage message, int socket)throws IOException 描述:发送帧信息 参数:message 帧信息 socket 套接字 范例: mCanSocket.transmit(message, mTxSocket);
获取接收任务状态
函数:public boolean RxTaskState() 描述:获取接收任务状态 返回:true 接收任务处于运行状态 false 接收任务处于停止状态 范例: boolean state = mCanSocket.RxTaskState();
关闭can设备
函数:public void closeDevice(final int socket, final String canDevice) 描述:关闭can设备 参数:canDevice can通道 范例: mCanSocket.closeDevice(socket, "can0");
添加接收监听器
函数:public void addMessageListener(final CanMessageListener canMessageListener) 描述:添加接收监听器 参数:canMessageListener 接收监听器 范例: mCanSocket.addMessageListener(this);
移除接收监听器
函数:public void removeMessageListener(final CanMessageListener canMessageListener) 描述:移除接收监听器 参数:canMessageListener 接收监听器 范例: mCanSocket.removeMessageListener(this);
清空接收监听器
函数:public void clearMessageListeners() 描述:清空接收监听器 范例: mCanSocket.clearMessageListeners();
设置波特率
函数:public static boolean setCanBaudRate(String canDevice, String baudrate) 描述:设置波特率 参数:canDevice can设备 baudrate 波特率 返回:true(成功)/false(失败) 范例: boolean result = CanSocket.setCanBaudRate("can0", "500000"); // can0波特率为500Kbps
获取can设备
函数:public static String[] getCanDeviceArr() 描述:获取can设备 返回:可用的can设备 范例: String[] canDeviceArr = CanSocket.getCanDeviceArr();
简单使用范例¶
import android.util.Log;
import com.firefly.api2.can.CanFilter;
import com.firefly.api2.can.CanMessage;
import com.firefly.api2.can.CanMessageListener;
import com.firefly.api2.can.CanSocket;
import java.io.IOException;
public class CanTest implements CanMessageListener {
private static String TAG = "CanTest";
private CanSocket mCanSocket = new CanSocket();
private int txSocket, rxSocket;
public CanTest(){}
public void send()throws IOException {
boolean isEFF = false;
boolean isRTR = false;
int id = 0x100;
byte[] data = new byte[] {(byte)1, (byte)2, (byte)3, (byte)4, (byte)5, (byte)6,(byte)7, (byte)8};
CanMessage message = new CanMessage(isEFF, isRTR, id, data);
CanSocket.setCanBaudRate("can0", "500000");
txSocket = mCanSocket.canDeviceOpen("can0");
mCanSocket.transmit(message,txSocket);
mCanSocket.closeDevice(txSocket, "can0");
}
public void receive()throws IOException{
CanFilter[] filter = new CanFilter[0];
CanSocket.setCanBaudRate("can1", "500000");
int rxSocket = mCanSocket.canDeviceOpen("can1");
mCanSocket.initReceiveTask(rxSocket, filter);
mCanSocket.clearMessageListeners();
mCanSocket.addMessageListener(this);
mCanSocket.startReceiveTask();
}
public void stopTask(){
mCanSocket.stopReceiveTask();
mCanSocket.removeMessageListener(this);
mCanSocket.closeDevice(rxSocket, "can1");
}
@Override
public void rxedCanMessage(final CanMessage message){
Log.d(TAG, "rxedCanMessage: " + message.toString());
}
}
3.4 安装升级¶
1. 本地ota包升级¶
函数:public void installPackage(String path)
描述:将重启进行ota包升级,目前仅支持放置在内置存储根目录,即/sdcard/下
参数:path ota包的绝对路径
范例:
mFireflyApi2.installPackage("/sdcard/update.zip");
3.5 网络¶
网络功能需要添加以下权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
3.5.1 以太网¶
1. 判断是否为双以太网口¶
函数:public boolean isDualEth(){
描述:获取设备是否为双以太网口
返回:true 双以太网口
false 单以太网口
范例:
boolean isDual = = mFireflyApi2.isDualEth();
2. 获取设备主以太网口的MAC地址¶
函数:public String getEthMacAddress()
描述:获取设备主以太网口的MAC地址
返回:失败返回null
范例:
String ethMac = mFireflyApi2.getEthMacAddress();
3. 获取设备主以太网口的信息¶
函数:public EthernetInfo getEthConfiguration()
描述:获取设备主以太网口的信息(包含:ip,netmask,gateway,dns1,dns2)
范例:
IpConfig info = mFireflyApi2.getEthConfiguration();
debug("IpAddress:"+info.getIpAddress()+"\n");
debug("Netmask:"+info.getNetmask()+"\n");
debug("Gateway:"+info.getGateway()+"\n");
debug("Dns1:"+info.getDns1()+"\n");
debug("Dns2:"+info.getDns2()+"\n");
4. 设置设备主以太网口的IP地址¶
函数:public boolean setEthConfiguration(boolean isStatic,String ipaddressStr,String maskStr,String gatewayStr,String dns1Str,String dns2Str)
描述:设置设备以太网口的IP地址
参数:isStatic true 为静态 IP 时其他参数才有效,否则 false 时为动态 IP 自动获取 IP
返回:失败返回 false
范例:
boolean set_static_ip = mFireflyApi2.setEthConfiguration(true,"192.168.1.3",.....);
boolean set_dhcp_ip = mFireflyApi2.setEthConfiguration(false,null,null,null,null,null);
5. 设置主以太网口开启/关闭¶
函数:public boolean setEthEnable(boolean enabled)
描述:设置主以太网开启/关闭
参数:enabled true(开启)/false(关闭)
范例:
boolean connect = mFireflyApi2.setEthEnable();
6. 获取设备副以太网口的MAC地址¶
函数:public String getEthAuxMacAddress()
描述:获取设备副以太网口的 MAC 地址
返回:失败返回 null
范例:
String auxEthMac = mFireflyApi2.getEthAuxMacAddress();
7. 获取设备副以太网口的信息¶
函数:public EthernetInfo getEthAuxConfiguration()
描述:获取设备副以太网口的信息(包含:ip,netmask,gateway,dns1,dns2)
范例:
IpConfig info = mFireflyApi2.getEthAuxConfiguration();
debug("IpAddress:"+info.getIpAddress()+"\n");
debug("Netmask:"+info.getNetmask()+"\n");
debug("Gateway:"+info.getGateway()+"\n");
debug("Dns1:"+info.getDns1()+"\n");
debug("Dns2:"+info.getDns2()+"\n");
8. 设置设备副以太网口的IP地址¶
函数:public boolean setEthAuxConfiguration(boolean isStatic,String ipaddressStr,String maskStr,String gatewayStr,String dns1Str,String dns2Str)
描述:设置设备副以太网的IP地址
参数:isStatic true 为静态 IP 时其他参数才有效,否则false时为动态 IP 自动获取 IP
返回:失败返回false
范例:
boolean set_static_ip = mFireflyApi2.setEthAuxConfiguration(true,"192.168.1.3",.....);
boolean set_dhcp_ip = mFireflyApi2.setEthAuxConfiguration(false,null,null,null,null,null);
3.5.2 无线网络¶
1. 打开设备热点¶
函数:public void startTethering(ITetheringCallback callback)
描述:打开设备热点
参数:callback 事件回调
范例:
mFireflyApi2.startTethering(new ITetheringCallback.Stub (){
@Override
public void onTetheringStarted() throws RemoteException {
Log.v(TAG,"onTetheringStarted");
}
@Override
public void onTetheringFailed() throws RemoteException {
Log.v(TAG,"onTetheringFailed");
}
});
2. 关闭设备热点¶
函数:public void stopTethering()
描述:关闭设备热点
范例:
mFireflyApi2.stopTethering();
3. 判断设备热点是否已经打开¶
函数:public boolean isWifiHotspotEnabled()
描述:判断设备热点是否已经打开
返回:true(开启)/false(关闭)
范例:
boolean isEnabled = mFireflyApi2.isWifiHotspotEnabled();
4. 获取设备热点配置信息¶
函数:public SoftApConfiguration getWifiHotspotConfig()
描述:获取设备热点配置信息
返回:SoftApConfiguration
范例:
SoftApConfiguration config = mFireflyApi2.getWifiHotspotConfig();
5. 配置设备热点信息¶
函数:public void configWifiHotspot(String ssid, String password)
描述:配置设备热点信息(热点名称,密码)
参数:ssid 热点名称
password 密码
返回:SoftApConfiguration
范例:
mFireflyApi2.configWifiHotspot("AndroidAP_Test","12345678");
6. 自动关闭设备热点¶
函数:public void setWifiHotspotAutoShutdownEnabled(boolean enabled)
描述:自动关闭设备热点(无设备连接)
参数:enabled true(开启)/false(关闭)
范例:
mFireflyApi2.setWifiHotspotAutoShutdownEnabled(true);
7. 判断设置热点是否开启自动关闭功能¶
函数:public boolean isWifiHotspotAutoShutdownEnabled()
描述:判断设置热点是否开启自动关闭功能
返回:true(开启)/false(关闭)
范例:
boolean mAutoOff = mFireflyApi2.isWifiHotspotAutoShutdownEnabled();
8. 设备热点使用固定IP地址¶
函数:public void setWifiHostspotUseFixedIfaceAddr(boolean use)
描述:设备热点使用固定IP地址
参数:use true(开启)/false(关闭)
范例:
mFireflyApi2.setWifiHostspotUseFixedIfaceAddr("true");
3.6 定时开关机¶
1. 设置一次定时开机¶
函数:public void setSchedulePowerOn(int id, boolean enabled, long alarm_time)
描述:指定UTC时间,设置定时开机,仅一次不会重复
参数:id 定时开机id
enabled true(开启)/false(关闭)
alarm_time 开机时间(UTC时间)
范例:
//设置1分钟后开机,id为11002
mFireflyApi2.setSchedulePowerOn(11002,true,System.currentTimeMillis()+60);
//取消id为11002的操作
mFireflyApi2.setSchedulePowerOn(11002,false,0);
2. 设置一次定时关机¶
函数:public void setSchedulePowerOff(int id, boolean enabled, long alarm_time)
描述:指定UTC时间,设置定时关机,仅一次不会重复
参数:id 定时关机id
enabled true(开启)/false(关闭)
alarm_time 关机时间(UTC时间)
范例:
//设置1分钟后关机,id为11001
mFireflyApi2.setPowerOffAlarm(11001, true,System.currentTimeMillis()+60);
//取消id为11001的操作
mFireflyApi2.setPowerOffAlarm(11001, false,0);
3. 设置一次定时重启¶
函数:public void setSchedulePowerReboot(int id, boolean enabled, long alarm_time)
描述:指定UTC时间,设置定时重启,仅一次不会重复
参数:id 定时重启id
enabled true(开启)/false(关闭)
alarm_time 重启时间(UTC时间)
范例:
//设置1分钟后重启,id 为11003
mFireflyApi2.setSchedulePowerReboot(11003, true,System.currentTimeMillis()+60);
//取消id 为11003的操作
mFireflyApi2.setSchedulePowerReboot(11003, false,0);
如果以上的功能无法满足您的需求,可以使用一下接口,自己做逻辑实现功能。此接口只是最基本的定时开关机功能,由传入的id控制开启/关闭,重启后失效需要手动再次设置。