10. Alarm Management

Synchronize phone time to device, manage alarms including: read, modify, delete

Important

  1. Maximum number of alarms: 5

  2. New alarm: Index support: 0-4

    • New operation should decide the index of the current new alarm based on the alarm list index.
      For example, if there are alarms with indices: 1 and 3 in the list, the new alarm’s index should be 2
  3. Alarm mode can be configured in firmware short settings, so you need to check if the firmware supports this function before using it

10.1. Time Synchronization

//Synchronize phone time to device
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//Execute sync time function and wait for result callback
rtcOp.syncTime(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Success callback
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
        //error -- Error information
    }
});

10.2. Read Alarms

//Read alarms
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//Register Rcsp event listener
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmListChange(BluetoothDevice device, AlarmListInfo alarmListInfo) {
        //This will callback alarm list information
    }
});
//Execute read alarm list function and wait for result callback
rtcOp.readAlarmList(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Success callback
        //Result will be callback at OnRcspEventListener#onAlarmListChange
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
        //error -- Error information
    }
});

10.3. Modify Alarm

//Modify alarm
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//Register Rcsp event listener
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmListChange(BluetoothDevice device, AlarmListInfo alarmListInfo) {
        //This will callback alarm list information
    }
});
//        AlarmBean alarmBean = "obtained by reading alarm";
AlarmBean alarmBean = new AlarmBean();
//Execute create or modify alarm function and wait for result callback
rtcOp.addOrModifyAlarm(rtcOp.getConnectedDevice(), alarmBean, new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Success callback, reacquire alarm list after successful setting, update UI
        //rtcOp.readAlarmList(rtcOp.getConnectedDevice(), null);
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
        //error -- Error information
    }
});

10.4. Delete Alarm

//Delete alarm
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//Register Rcsp event listener
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmListChange(BluetoothDevice device, AlarmListInfo alarmListInfo) {
        //This will callback alarm list information
    }
});
//        AlarmBean alarmBean = "obtained by reading alarm";
AlarmBean alarmBean = new AlarmBean();
//Execute delete alarm function and wait for result callback
rtcOp.deleteAlarm(rtcOp.getConnectedDevice(), alarmBean, new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Success callback, reacquire alarm list after deletion, update UI
        //rtcOp.readAlarmList(rtcOp.getConnectedDevice(), null);
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
        //error -- Error information
    }
});

10.5. Get Default Ringtone Selection List

//Read alarm default ringtone list, for setting alarm ringtone
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//Register Rcsp event listener
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmDefaultBellListChange(BluetoothDevice device, List<DefaultAlarmBell> bells) {
        //This will callback alarm default ringtone list information
    }
});
//Execute read default alarm ringtone list function and wait for result callback
rtcOp.readAlarmDefaultBellList(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Success callback
        //Result will be callback at OnRcspEventListener#onAlarmDefaultBellListChange
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
        //error -- Error information
    }
});

10.6. Ringtone Preview

//Read alarm default ringtone list, for setting alarm ringtone
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//Register Rcsp event listener
rtcOp.getRcspOp().registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmDefaultBellListChange(BluetoothDevice device, List<DefaultAlarmBell> bells) {
        //This will callback alarm default ringtone list information
    }
});
//Execute read default alarm ringtone list function and wait for result callback
rtcOp.readAlarmDefaultBellList(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Success callback
        //Result will be callback at OnRcspEventListener#onAlarmDefaultBellListChange
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
         //error -- Error information
    }
});

10.7. Stop Ringtone Preview

//Stop ringtone preview
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//Execute stop ringtone preview function and wait for result callback
rtcOp.stopAlarmBell(rtcOp.getConnectedDevice(), new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Success callback
        //Device will pause ringtone playback
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
        //error -- Error information
    }
});

10.8. Get Alarm Mode Settings

//Get alarm mode settings
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
boolean enable = watchManager.getDeviceInfo().getAlarmExpandFlag() == 0x01;
if (enable) {
    //Does not support alarm mode settings
    return;
}
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//      AlarmBean alarmBean = "obtained by reading alarm";
AlarmBean alarmBean = new AlarmBean();
int mask = 0x01 << alarmBean.getIndex();//Can get multiple alarm mode settings at once
//Execute read alarm ringtone parameters function and wait for result callback
rtcOp.readAlarmBellArgs(rtcOp.getConnectedDevice(), (byte) mask, new OnOperationCallback<List<AlarmExpandCmd.BellArg>>() {
    @Override
    public void onSuccess(List<AlarmExpandCmd.BellArg> result) {
        //Success callback
        //result - Alarm ringtone parameters
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
        //error -- Error information
    }
});

10.9. Set Alarm Mode

//Set alarm mode
//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
WatchManager watchManager = WatchManager.getInstance();
boolean enable = watchManager.getDeviceInfo().getAlarmExpandFlag() == 0x01;
if (enable) {
    //Does not support alarm mode settings
    return;
}
//Initialize clock function implementation class
RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
//        AlarmExpandCmd.BellArg bellArg = "obtained by getting alarm mode settings";
AlarmExpandCmd.BellArg bellArg = null;
//Execute set alarm ringtone parameters function and wait for result callback
rtcOp.setAlarmBellArg(rtcOp.getConnectedDevice(), bellArg, new OnOperationCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Success callback
    }

    @Override
    public void onFailed(BaseError error) {
        //Failure callback
    }
});

10.10. Listen to Alarm Ringtone

//WatchManager is a subclass of WatchOpImpl, must configure sdk in 1.3
final WatchManager watchManager = WatchManager.getInstance();
watchManager.registerOnRcspEventListener(new OnRcspEventListener() {
    @Override
    public void onAlarmNotify(BluetoothDevice device, AlarmBean alarmBean) {
        super.onAlarmNotify(device, alarmBean);
        //Alarm ringtone

        //Initialize clock function implementation class
        RTCOpImpl rtcOp = new RTCOpImpl(watchManager);
        //Execute stop alarm ringtone function and wait for result callback
        rtcOp.stopAlarmBell(device, new OnOperationCallback<Boolean>() {
            @Override
            public void onSuccess(Boolean result) {

            }

            @Override
            public void onFailed(BaseError error) {

            }
        });
    }

    @Override
    public void onAlarmStop(BluetoothDevice device, AlarmBean alarmBean) {
        super.onAlarmStop(device, alarmBean);
        //Alarm ringtone stopped
    }
});