• Home
  • About
  • Products
    AMOLED Smartwatch
    AMOLED Smartwatch
    BT Call Smartwatch
    BT Call Smartwatch
    GPS Smartwatch
    GPS Smartwatch
    Woman Smartwatch
    Woman Smartwatch
    4G Kids Smartwatch
    4G Kids Smartwatch
  • Services
  • Blog
  • Contact
  • Home
  • About
  • Products
    AMOLED Smartwatch
    BT Call Smartwatch
    GPS Smartwatch
    Woman Smartwatch
    4G Kids Smartwatch
  • Services
  • Blog
  • Contact
SDK Integration


android-watch-ble-doc-en-1.7.4
  • 1 Environment configuration

    • 1.1 Add SDK to your project

    • 1.2 Declare permissions

    • 1.3 Declaration component

    • 1.4 Obfuscation rules

  • 2 Usage

      • 2.1 Create the CRPBleClient

      • 2.2 Scan BLE device

      • 2.3 Connect

      • 2.4 Time

      • 2.5 Firmware

      • 2.6 Battery

      • 2.7 User Info

      • 2.8 Weather

      • 2.9 Steps

      • 2.10 Sleep

      • 2.11 Unit system

      • 2.12 Quick view

      • 2.13 Goals

      • 2.14 Watch face

      • 2.15 Alarm

      • 2.16 Watch version

      • 2.17 Language

      • 2.18 Notification

      • 2.19 Sedentary reminder

      • 2.20 Find the watch

      • 2.21 Heart rate

      • 2.22 Blood pressure

      • 2.23 Blood oxygen

      • 2.24 Take a photo

      • 2.25 Mobile phone related operations

      • 2.26  RSSI

      • 2.27 Shut down

      • 2.28 Do not disturb

      • 2.29 Breathing light

      • 2.30 ECG

      • 2.31 Physiological cycle

      • 2.32 Find phone

      • 2.33 Music player

      • 2.34 Drink water reminder

      • 2.35 Heart rate alarm

      • 2.36 Training

      • 2.37 Protocol version

      • 2.38 Temperature

      • 2.39 Display time

      • 2.40 Hand washing reminder

      • 2.41 Sets local city

      • 2.42 Temperature system

      • 2.43 Brightness

      • 2.44 Classic Bluetooth address

      • 2.45 Contacts

      • 2.46 Battery Saving

      • 2.47 Pill Reminder

      • 2.48 Tap to wake

      • 2.49 Create Bond

      • 2.50 HRV

      • 2.51 Stress

      • 2.52 E-Card

      • 2.53 Calendar Event

      • 2.54 GPS

      • 2.55 Vibration Strength

        1 Environment configuration

        1.1 Add SDK to your project

        Copy crpblelib-*.aar to the project's libs directory. If there is an old version of the aar package in it, please delete it.

        1.2 Declare permissions

        Configure permissions in AndroidManifest.xml

        x

        1.3 Declaration component

        Please declare the following components in the application tag

        xxxxxxxxxx

        1.4 Obfuscation rules

        Perform the following configuration when generating apk for code obfuscation

        xxxxxxxxxx-keep class com.crrepa.ble.** { *; }

         

        2 Usage

        The following contains all the functions supported by the MoYoung Watch, and a certain watch only supports part of the functions. To find out if your watch supports a feature, contact us.

        2.1 Create the CRPBleClient

        CRPBleClient is the entry point of the SDK. The client needs to maintain an instance of CRPBleClient. It is recommended to initialize CRPBleClient in Application.onCreate().

        xxxxxxxxxxCRPBleClient bleClient = CRPBleClient.create(context);

        2.2 Scan BLE device

        1. Start scan

          Normal scanning can be started with permission enabled and Bluetooth enabled. When the watch is found during scanning, it is called back by CRPScanCallback.onScanning(). After the scan is finished, all the watchs found during the scan are recalled by CRPScanCallback.onScanComplete(). The scan duration can be set in milliseconds. Because the Bluetooth scan operation is time-consuming, the recommended scan time is 10 seconds.

        xxxxxxxxxxbleClient.scanDevice(scanCallback, 10 * 1000);
        1. Cancel scan

          Stop scanning while scanning, and canceling scanning also triggers CRPScanCallback.onScanComplete().

        xxxxxxxxxxbleClient.cancelScan();

        2.3 Connect

        1. Connect

          Get the Mac Address to the watch by scanning the CRPScanDevice of the callback. Connect to the watch via CRPBleDevice.connect() and callback state via CRPBleConnectionStateListener.onConnectionStateChange() . It is recommended to increase the appropriate delay when the reconnection is disconnected, so that the system can recover resources and ensure the connection success rate.

        xxxxxxxxxxString address = CRPScanDevice.getDevice().getAddress();CRPBleDevice bleDevice = bleClient.getBleDevice(address);CRPBleConnection bleConnection = bleDevice.connect();bleConnection.setConnectionStateListener(bleConnectionStateListener);
        1. Reconnect

          There are two ways to reconnect:

          • New GATT connection (recommend)

            xxxxxxxxxx// close GATT CRPBleConnection.close();// delay 3 secondsString address = CRPScanDevice.getDevice().getAddress();CRPBleDevice bleDevice = bleClient.getBleDevice(address);CRPBleConnection bleConnection = bleDevice.connect();bleConnection.setConnectionStateListener(bleConnectionStateListener);
          • Continue to connect

            xxxxxxxxxxCRPBleConnection.connect();

        2.4 Time

        1. Sync Time

          Keep the watch and the phone in the same time.

          xxxxxxxxxxbleConnection.syncTime();
        2. Set Time System

          Sets the time system of the watch.

          xxxxxxxxxxbleConnection.sendTimeSystem(byte type);

          CRPTimeSystemType:

          TIME_SYSTEM_12TIME_SYSTEM_24
          12-Hour Time24-Hour Time
        3. Get Time System

          Query the time system of the watch.

          xxxxxxxxxxbleConnection.queryTimeSystem(CRPDeviceTimeSystemCallback callback);

        2.5 Firmware

        1. Query firmware version

          Query the current firmware version of the watch.

        xxxxxxxxxxbleConnection.queryFrimwareVersion(CRPDeviceFirmwareVersionCallback);
        1. Check firmware

          Version is the current firmware version. The new firmware information is called back via CRPDeviceNewFirmwareVersionCallback.onNewFirmwareVersion().

        xxxxxxxxxxbleConnection.checkFirmwareVersion(CRPDeviceNewFirmwareVersionCallback, version, CRPFirmwareUpgradeType);

        CRPFirmwareUpgradeType:


        NORMAL_UPGEADE_TYPEBETA_UPGRADE_TYPEFORCED_UPDATE_TYPE
        Normal upgrade. Used for regular upgrades.BETA upgrade. Used for internal testing version upgrades.Forced upgrade. Generally not used, for major updates, forcing users to upgrade.


        CRPFirmwareVersionInfo:


        versionchangeNoteschangeNotesEntypemcu
        Current firmware version number of the watchchange noteenglish change noteUpgrade type, same as CRPFirmwareUpgradeTypeMCU type, used to distinguish upgrade mode


        1. Firmware upgrade

          The chip firmware upgrade method of each platform is different, and the upgrade method of each platform is as follows.

          • Nordic/Goodix

          • Huntersun

            The upgrade mode of Huntersun watch is different from the normal mode. It has a separate broadcast name and Mac address, and the Mac address is called back through CRPDeviceDfuAddressCallback. Before the upgrade, you need to query the Mac address of the firmware upgrade mode of the watch. You can save this Mac address and re-upgrade after the upgrade fails.

            xxxxxxxxxxbleConnection.queryHsDfuAddress(CRPDeviceDfuAddressCallback);

            After the watch enters the firmware upgrade mode, it will disconnect the Bluetooth connection from the normal mode, and initiate a firmware upgrade after the Bluetooth connection is disconnected. After the watch enters the firmware upgrade mode, it is not allowed to initiate a normal Bluetooth connection, which will cause the firmware upgrade to fail.

            xxxxxxxxxxbleConnection.enableHsDfu();

            The upgrade progress is called back through CRPBleFirmwareUpgradeListener. After the upgrade is successful, the watch will restart and return to the normal mode; after the upgrade fails, the firmware upgrade can be restarted.

            xxxxxxxxxxHsDfuController hsDfuController = new HsDfuController();hsDfuController.setUpgradeListener(CRPBleFirmwareUpgradeListener);hsDfuController.setAddress(address);hsDfuController.start();

            After the upgrade succeeds or fails, this interface can be called to exit the firmware upgrade process.

            xxxxxxxxxxhsDfuController.abort();
          • Realtek

          • Sifli

          1. Start upgrade

            Unable to abort upgrade. The upgrade progress is called back through CRPBleFirmwareUpgradeListener. Please add in AndroidManifest:

            xxxxxxxxxx
            xxxxxxxxxxSifliDfuController controller = SifliDfuController.getInstance();controller.setUpgradeListener(CRPBleFirmwareUpgradeListener);controller.start(String address);
          2. Start upgrade

            The upgrade progress is called back through CRPBleFirmwareUpgradeListener. Please add in AndroidManifest:

            xxxxxxxxxx
            xxxxxxxxxxRtkDfuController controller = RtkDfuController.getInstance();controller.setUpgradeListener(new CRPBleFirmwareUpgradeListener());controller.start(String address);
          3. Abort upgrade

            xxxxxxxxxxcontroller.abort();
          4. Query Huntersun dfu address

          5. Enable Huntersun Dfu mode

          6. Start upgrade

          7. Abort upgrade

          8. Start upgrade

            The upgrade progress is called back through CRPBleFirmwareUpgradeListener.

            xxxxxxxxxxbleConnection.startFirmwareUpgrade(isGoodix, CRPBleFirmwareUpgradeListener);
          9. Abort upgrade

            After the upgrade succeeds or fails, this interface can be called to exit the firmware upgrade process.

            xxxxxxxxxxbleConnection.abortFirmwareUpgrade();
          10. Query DFU status

            Check whether the watch is in the DFU data transmission state. In the new firmware, the watch will restart multiple times during the DFU process. When the watch is in the DFU state, avoid sending other commands to the watch. The result is called back via CRPDeviceDfuStatusCallback.onDeviceDfuStatus().

            xxxxxxxxxxbleConnection.queryDeviceDfuStatus(CRPDeviceDfuStatusCallback);

            CRPDeviceDfuStatusCallback

            DEVICE_STATUS_NORMALDEVICE_STATUS_DFU
            NormalDFU

        2.6 Battery

        1. Query the current battery of the watch. When the battery level of the watch exceeds 100, it means the watch is charging.

        xxxxxxxxxxbleConnection.queryDeviceBattery();
        1. Set up the watch battery listener.

        xxxxxxxxxxbleConnection.setDeviceBatteryListener(CRPDeviceBatteryListener);
        1. Subscription battery

          When the battery of the watch changes, it will be called back through CRPDeviceBatteryListener.onDeviceBattery(battery).

        xxxxxxxxxxbleConnection.subscribeDeviceBattery();

        2.7 User Info

        1. Set user information

          Set the user's personal information to the watch.

        xxxxxxxxxxbleConnection.sendUserInfo(CRPUserInfo);

        CRPUserInfo:


        weightheightgenderage
        Weight (used to calculate calories)Height (used to calculate the distance of the activity)Gender (used to measure blood pressure or blood oxygen)Age (for measuring blood pressure or blood oxygen)


        1. Set steps length

          In the watch firmware 1.6.6 and above, you can set the step length to the watch to calculate the activity data more accurately.

        xxxxxxxxxxbleConnection.sendStepLength(length);

        2.8 Weather

        1. Today's weather

          Set the weather today to the watch.

        xxxxxxxxxxbleConnection.sendTodayWeather(CRPTodayWeatherInfo);

        CRPTodayWeatherInfo:


        citylunarfestivalpm25tempweatherId
        CityLunar Festival (not necessary)festival(not necessary)PM2.5Real-time temperatureWeather status


        CRPWeatherId:


        CLOUDYFOGGYOVERCASTRAINYSNOWYSUNNYSANDSTORMHAZE
        partly cloudyfogovercastrainysnowysunnysandstormhaze


        1. Weather in the next 7 days

          Set the weather for the next 7 days to the watch.

        xxxxxxxxxxbleConnection.sendFutureWeather(CRPFutureWeatherInfo);

        CRPFutureWeatherInfo.FutureBean:


        weatherIdlowTemperaturehighTemperature
        Weather statuslowest temperatureMaximum temperature


        1. Weather listener

          The watch can save real-time weather for 2 hours, and the weather information will be cleared after 2 hours. When the watch has no weather information today, when the watch switches to the weather interface, the weather is reset by CRPWeatherChangeListener.onUpdateWeather().

        xxxxxxxxxxbleConnection.setWeatherChangeListener(CRPWeatherChangeListener);

        2.9 Steps

        1. Set steps listeners

          All activity-related data is called back through the CRPStepChangeListener.

        xxxxxxxxxxbleConnection.setStepChangeListener(CRPStepChangeListener);
        1. Query today's steps

          Get the number of steps today, and the result is called back by CRPActionChangeListener.onStepChange().

        xxxxxxxxxxbleConnection.syncStep();

        CRPStepInfo:


        stepsdistancecaloriestime
        stepsDistance (in meters)Calories (units of kilocalories)Activity duration, (the default value is 0, which means the watch does not support)


        1. Query  history steps

          The watch can save the number of active steps in the last three days, and can query the number of active steps in a given day. The result is called back via CRPStepChangeListener.onHistoryStepChange().

        xxxxxxxxxx// Sifli watches support the history of the last 7 days, while other watches only support the last three days. It is recommended to query the next one after querying the callback in the previous day.bleConnection.queryHistoryStep(CRPHistoryDay);
        1. Set steps category listener

          The step count data is called back via the CRPStepsCategoryChangeListener.

          xxxxxxxxxxbleConnection.setStepsCategoryListener(CRPStepsCategoryChangeListener);
        2. Query steps category

          Some watchs support the classification statistics for the last two days. The result is called back by CRPStepsCategoryChangeListener.onStepsCategoryChange().

          xxxxxxxxxxbleConnection.queryStepsCategory(CRPStepsCategoryDateType);

        2.10 Sleep

        1. Set sleep listener

          All sleep related data is called back via CRPSleepChangeListener.

        xxxxxxxxxxbleConnection.setSleepChangeListener(CRPSleepChangeListener);
        1. Query today's sleep

          Get today's sleep data, the result is called back by CRPSleepChangeListener.onSleepChange(). The watch sleep clear time is 8:00 pm, and the watch records the sleep time period from 8:00 pm to 10:00 am the next day.

        xxxxxxxxxxbleConnection.syncSleep();// added rem sleep statebleConnection.syncRemSleep();

        CRPSleepInfo:


        totalTimerestfulTimelightTimesoberTimeSLEEP_STATE_RESTFULSLEEP_STATE_LIGHTSLEEP_STATE_SOBERSLEEP_STATE_REMremTime
        Total sleep timerestful timelight timeawake timerestfullight sleepawakerem sleeprem sleep time


        CRPSleepInfo.DetailBean:


        startTimeendTimetotalTimetype
        start timeend timetotal timesleep state


        1. Query history sleep

          The watch can save sleep data for the last three days and can query the sleep data for a given day. The result is called back by CRPSleepChangeListener.onPastSleepChange().

        xxxxxxxxxxbleConnection.queryHistorySleep(CRPHistoryDay);// added rem sleep statebleConnection.queryHistoryRemSleep(CRPHistoryDay);

        2.11 Unit system

        1. Set the unit system

          xxxxxxxxxxbleConnection.sendMetricSystem(CRPMetricSystemType);

          CRPMetricSystemType:

          METRIC_SYSTEMIMPERIAL_SYSTEM
          METRICIMPERIAL
        2. Query the unit system

          xxxxxxxxxxbleConnection.queryMetricSystem(CRPDeviceMetricSystemCallback callback);

        2.12 Quick view

        1. Set the quick view state

          Turns the quick view on or off.

        xxxxxxxxxxbleConnection.sendQuickView(state);
        1. Query the quick view state

          The result is called back via CRPDeviceQuickViewCallback.onQuickView().

        xxxxxxxxxxbleConnection.queryQuickView(CRPDeviceQuickViewCallback);
        1. Set the effective time for quick view

          The watch supports the effective period of quick view, and the ban bright screen is effective only when the watch is illuminated.

        xxxxxxxxxxbleConnection.sendQuickViewTime(CRPPeriodTimeInfo);
        1. Get the effective time for quick view

          Check the effective time period of quick view set by the watch. The result is called back by CRPDevicePeriodTimeCallback.onPeriodTime().

        xxxxxxxxxxbleConnection.queryQuickViewTime(CRPDevicePeriodTimeCallback);

        2.13 Goals

        1. Set goal steps

          Push the user's target step number to the watch. When the number of active steps reaches the target step, the watch will have a target to reach the reminder.

        xxxxxxxxxxbleConnection.sendGoalSteps(steps)
        1. Get goal steps

          Query the target number of steps in the watch, and the result is called back by CRPDeviceGoalStepCallback.onGoalStep().

        xxxxxxxxxxbleConnection.queryGoalStep(CRPDeviceGoalStepCallback);
        1. Set daily goals

        The daily goal is to set a goal value for each day.

        xxxxxxxxxxbleConnection.sendDailyGoals(CRPDailyGoalsInfo);

        CRPDailyGoalsInfo:


        stepscaloriestrainingTimedistance
        The goal stepsThe goal calories(unit:Kcal)The goal distance time(unit:minute)The goal distance


        1. Query daily goals

          Callback via CRPDailyGoalsCallback.onDailyGoals() .

        xxxxxxxxxxbleConnection.queryDailyGoals(CRPDailyGoalsCallback);
        1. Set training day goals

        The training day is to identify a certain day as an training day, and the goal value can be set separately, and the goal value of the training day will override the daily goal value.

        xxxxxxxxxxbleConnection.sendTrainingDayGoals(CRPDailyGoalsInfo);
        1. Query training day goals

        Callback via CRPTrainingDayGoalsCallback.onTrainingDayGoals() .

        xxxxxxxxxxbleConnection.queryTrainingDayGoals(CRPTrainingDayGoalsCallback);
        1. Set training day

        xxxxxxxxxxbleConnection.sendTrainingDays(CRPTrainingDayInfo);

        CRPTrainingDayInfo:


        enabletrainingDays
        ture is enable; otherwise vice versaThe training day, same alarm


        1. Query training day

        Callback via CRPTrainingDayGoalsCallback.onTrainingDays() .

        xxxxxxxxxxbleConnection.queryTrainingDay(CRPTrainingDayGoalsCallback);

        2.14 Watch face

        1. Set display watch face index

          The watch supports a variety of different watch face, which can be switched freely.

        xxxxxxxxxx// The index of the built-in watch face starts from 1 and increases sequentially. The index of the download dial is after the built-in watch face.bleConnection.sendDisplayWatchFace(byte index);
        1. Query display watch face index

          Query the index of the watch face being used by the watch, and the result is called back through CRPDeviceWatchFacesCallback.onDisplayWatchFace().

        xxxxxxxxxxbleConnection.queryDisplayWatchFace(CRPDeviceDisplayWatchFaceCallback);
        1. Query the watch face layout

          Query the watch watchface layout information, and the result is called back by CRPDeviceWatchFaceLayoutCallback.onWatchFaceLayoutChange().

          xxxxxxxxxxbleConnection.queryWatchFaceLayout(CRPDeviceWatchFaceLayoutCallback);

          CRPWatchFaceLayoutInfo:

          timePositiontimeTopContenttimeBottomContenttextColorbackgroundPictureMd5heightwidththumHeightthumWidthcompressionType
          time positioncontent displayed above timecontent displayed below timefont color(RGB)The background image MD5 has a length of 32 bits. When padded with 0, the background image restores the default background.The watch face height,  default  240 px.The watch face width, default  240 px.The thum watch face height, The default is 0, which means it is not supportedThe thum watch face width,The default is 0, which means it is not supportedThe compression type(LZO, RGB_DEDUPLICATION, RGB_LINE,  SIFLI, ORIGINAL)

          CRPWatchFaceLayoutType:

          WATCH_FACE_TIME_TOPTime is at the top right
          WATCH_FACE_TIME_BOTTOMTime is at the bottom right
          WATCH_FACE_CONTENT_CLOSEDo not display anything
          WATCH_FACE_CONTENT_DATEDate
          WATCH_FACE_CONTENT_SLEEPSleep
          WATCH_FACE_CONTENT_HEART_RATEHeart Rate
          WATCH_FACE_CONTENT_STEPSteps
        2. Set the watchface layout

        xxxxxxxxxxbleConnection.sendWatchFaceLayout(CRPWatchFaceLayoutInfo);
        1. Set watch face background

          The dial of the 1.3-inch color screen supports the replacement of the background image with a picture size of 240 * 240 px. Compressed indicates whether the picture needs to be compressed (the watch with the master control of 52840 does not support compression and is fixed to false); timeout indicates the timeout period, in seconds. The replacement progress is called back through the CRPWatchFaceSwitchListener.

          xxxxxxxxxxbleConnection.sendWatchFaceBackground(CRPWatchFaceBackgroundInfo, CRPFileTransListener)

          CRPWatchFaceBackgroundInfo:

          bitmapthumBitmaptypetimeout
          The bitmap of background imageThe bitmap of thumbnailCRPWatchFaceLayoutInfo.CompressionTypeTransmission timeout(unit: TimeUnit.SECONDS). 30 seconds by default.
        2. Abort watch face background

          Abort transfer during watch face background image transfer.

          xxxxxxxxxxbleConnection.abortWatchFaceBackground();
        3. Get support watch face type

          Some watchs add a new watch face to query the supported watch face types. The result is called back by CRPDeviceSupportWatchFaceCallback.onSupportWatchFace().

          xxxxxxxxxxbleConnection.querySupportWatchFace(CRPDeviceSupportWatchFaceCallback);

          CRPSupportWatchFaceInfo:

          displayWatchFacesupportWatchFaceList
          The watchface idThe support watchface type list, used to get the watch faces available on the server
        4. Get the watch face store

          According to the watch face type supported by the watch, obtain a list of watch faces that the watch can be replaced. The result is called back via CRPDeviceWatchFaceStoreCallback.onWatchFaceStoreChange().

          xxxxxxxxxxbleConnection.queryWatchFaceStore(List list, String firmwareVersion, int pageCount, int pageIndex, CRPDeviceWatchFaceStoreCallback callback);

          Get the list of available watch faces by way of paging query.

        5. Get the watch face information of the watch face Id

          Gets the watchface information of the watchface ID, and the result is called back by CRPDeviceWatchFaceCallback.onWatchFaceChange().

          xxxxxxxxxxbleConnection.queryWatchFaceOfID(id, CRPDeviceWatchFaceCallback);
        6. Send download watch face

          Send the watchface file of the new watchface to the watch, during which the watch will restart. The transfer progress is called back by CRPWatchFaceTransListener.

        xxxxxxxxxxbleConnection.sendWatchFace(CRPWatchFaceInfo info, CRPFileTransListener listener, timeout);

          CRPWatchFaceInfo:


        filetype
        The watch face fileWacthFaceType


        1. Abort Download watch face

        xxxxxxxxxxbleConnection.abortWatchFace();
        1. Delete Download watch face

        The Sifli watch supports deleting the watch face, and the deletion result is called back through CRPWatchFaceDeleteCallback.

        xxxxxxxxxxbleConnection.deleteWatchFace(int id, CRPWatchFaceDeleteCallback callback);
        1. Query the available storage space of the watch

        Query the available storage space of the Siche watch to determine whether the watch can download new dials. Via the CRPAvailableStorageCallback.onAvailableSize() callback.

        xxxxxxxxxxbleConnection.queryAvailableStorage(CRPAvailableStorageCallback);

        2.15 Alarm

        Some watches support the new version of the alarm clock (up to 8 alarm clocks, which can be deleted), and other watches only support the old version of the alarm clock (3 fixed alarm clocks, which cannot be deleted).

        1. Set alarm(old version)

          The watch supports three alarm clocks, and the alarm information can be set separately according to the alarm number. A single alarm supports setting the date.

        xxxxxxxxxxbleConnection.sendAlarm(CRPAlarmInfo)

        CRPAlarmInfo:


        idhourminuterepeatModeenable
        The alarm idhour (24-hour format)minuteRepeat mode(For example, repeat on Monday and Tuesday, repeatMode = MONDAY + TUESDAY)enable


        Alarm id:


        FIRST_CLOCKSECOND_CLOCKTHIRD_CLOCK
        First alarm clockSecond alarm clockThird alarm clock


        Repeat mode:


        SINGLESUNDAYMONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYEVERYDAY
        Single, only valid today.Repeat on SundayRepeat on MondayRepeat on TuesdayRepeat on WednesdayRepeat on ThursdayRepeat on FridayRepeat on SaturdayEveryday


        1. Query all alarm(old version)

          Query the alarm information saved by the watch, and the result is called back by CRPAlarmCallback.onAlarmList().

        xxxxxxxxxxbleConnection.queryAllAlarm(CRPAlarmCallback);
        1. Set alarm(new version)

          The alarm index cannot exceed 8.

        xxxxxxxxxxbleConnection.sendNewAlarm(CRPAlarmInfo info);
        1. Delete alarm(new version)

        xxxxxxxxxx// Delete the alarm with the specified indexbleConnection.deleteNewAlarm(int id);
        1. Delete all alarm(new version)

        xxxxxxxxxxbleConnection.deleteAllNewAlarm();
        1. Query all alarm(new version)

          Callback via CRPAlarmCallback.onNewAlarmList().

        xxxxxxxxxxbleConnection.queryAllNewAlarm(CRPAlarmCallback callback);

        2.16 Watch version

        1. Set the watch version

          The watch is divided into Chinese and international versions. The Chinese version only supports Simplified Chinese. The international version supports multiple languages and traditional Chinese.

        xxxxxxxxxxbleConnection.sendDeviceVersion(CRPDeviceVersionType);

        CRPDeviceVersionType:


        CHINESE_EDITIONINTERNATIONAL_EDITION
        Chinese EditionInternational Edition


        1. Get the watch version

          Query the version that the watch is using, and the result is called back by CRPDeviceVersionCallback.onDeviceVersion().

        xxxxxxxxxxbleConnection.queryDeviceVersion(CRPDeviceVersionCallback);

        2.17 Language

        1. Set the watch language

          Set the language of the watch.

        xxxxxxxxxxbleConnection.sendDeviceLanguage(CRPDeviceLanguageType);

        CRPDeviceLanguageType:


        LANGUAGE_ENGLISHLANGUAGE_CHINESELANGUAGE_JAPANESELANGUAGE_KOREANLANGUAGE_GERMANLANGUAGE_FRENCHLANGUAGE_SPANISHLANGUAGE_ARABICLANGUAGE_RUSSIANLANGUAGE_TRADITIONALLANGUAGE_UKRAINIANLANGUAGE_ITALIANLANGUAGE_PORTUGUESE
        EnglishChinese SimplifiedJapaneseKoreanGermanFrenchSpanishArabicRussiantraditional ChineseUkrainianItalianPortuguese


        Note: Italian and Portuguese only support watch firmware 1.7.1 and above.

        1. Get the watch language

          Query the language that the watch is using and the list of languages supported by the watch. The result is called back by CRPDeviceLanguageCallback.onDeviceLanguage(int type, int[] languageArray).

          typelanguageArray
          The type of language being usedThe List of all language types supported by the watch
          xxxxxxxxxxbleConnection.queryDeviceLanguage(CRPDeviceLanguageCallback);

        2.18 Notification

        1. Set other message

          Turn on or off other message.

        xxxxxxxxxxbleConnection.sendOtherMessageState(state);
        1. Get other message

          Query other message enable status, and the result is called back by CRPDeviceOtherMessageCallback.onOtherMessage().

        xxxxxxxxxxbleConnection.queryOtherMessageState(CRPDeviceOtherMessageCallback);
        1. Send message

          Send various types of message content to the watch.

        xxxxxxxxxxbleConnection.sendMessage(CRPMessageInfo);

        CRPMessageInfo:


        messagetypeversionCodeisHsisSmallScreen
        Message contentMessage type(CRPBleMessageType)Firmware version  (for example: MOY-AA2-1.7.6, which is 176)Whether the MCU is HS, please confirm the MCU type with us.Is the watch screen smaller than 1 inch


        CRPBleMessageType:


        MESSAGE_PHONEphone
        MESSAGE_SMSSMS
        MESSAGE_WECHATWeChat (Chinese Edition)
        MESSAGE_QQQQ
        MESSAGE_FACEBOOKFACEBOOK
        MESSAGE_TWITTERTWITTER
        MESSAGE_WHATSAPPWHATSAPP
        MESSAGE_WECHAT_INWeChat (International Edition)
        MESSAGE_INSTAGREMINSTAGREM
        MESSAGE_SKYPESKYPE
        MESSAGE_KAKAOTALKKAKAOTALK
        MESSAGE_LINELINE
        MESSAGE_OTHEROther


        1. End call

          When the watch receives a phone type message push, the watch will vibrate for a fixed time. Call this interface to stop the watch vibration when the watch is connected or the phone is hung up.

        xxxxxxxxxxbleConnection.sendCall0ffHook();
        1. Set call number listener

          Watches that support calls can make calls on the watch, and the outgoing phone number can be obtained through CRPCallNumberListener.onCallNumber().

          xxxxxxxxxxbleConnection.setCallNumberListener(CRPCallNumberListener);
        2. Set call contact name

          Send the name of the outgoing contact, and the incoming contact still uses sendMessage.

          xxxxxxxxxxbleConnection.sendCallContactName(name);
        3. Query the list of messages supported by the watch

          Some watches have a built-in list of supported App messages. Callback via CRPMessageListCallback.onMessageList() .

          xxxxxxxxxx// See CRPBleMessageType for the message typebleConnection.queryMessageList(CRPMessageListCallback);

        2.19 Sedentary reminder

        1. Set sedentary reminder state

          Turn the sedentary reminder on or off.

        xxxxxxxxxxbleConnection.sendSedentaryReminder(state);
        1. Query sedentary reminder state

          Query the sedentary reminder status, and the result is called back by CRPDeviceSedentaryReminderCallback.onSedentaryReminder().

        xxxxxxxxxxbleConnection.querySedentaryReminder(CRPDeviceSedentaryReminderCallback);
        1. Set sedentary reminder time

          Set a valid period for sedentary reminders.

          xxxxxxxxxxbleConnection.sendSedentaryReminderPeriod(CRPSedentaryReminderPeriodInfo);

          CRPRemindersToMovePeriodInfo:

          periodstepsstartHourendHour
          Sedentary reminder period (unit: minute)Maximum number of stepsStart time (24-hour clock)End time (24-hour clock)
        2. Get sedentary reminder time

          Query the watch for sedentary reminder valid period, the result is called back by CRPDeviceRemindersToMovePeriodCallback.onSedentaryReminderPeriod().

          xxxxxxxxxxbleConnection.querySedentaryReminderPeriod(CRPDeviceSedentaryReminderPeriodCallback);

        2.20 Find the watch

        Look for the watch and the watch will vibrate for a few seconds after receiving this command.

        xxxxxxxxxxbleConnection.findDevice();

        2.21 Heart rate

        1. Set heart rate listener

          All heart rate related data will be called back via CRPHeartRateChangeListener.

        xxxxxxxxxxbleConnection.setHeartRateChangeListener(CRPHeartRateChangeListener);
        1. Query last dynamic heart rate measurement

        The dynamic heart rate is measured in an unconnected state and the watch can save the last measurement. The result is called back by CRPHeartRateChangeListener.onMeasureComplete().

        xxxxxxxxxxbleConnection.queryLastDynamicRate(CRPHistoryDynamicRateType);

        CRPHeartRateInfo:


        startMeasureTimemeasureDatatimeIntervalheartRateType
        Start time (in milliseconds)Heart rate measurements, a single data representing the average 2 heart rate over the measurement interval.Time interval of heart rate measurement data (in minutes)Heart rate data type


        HeartRateType:


        PART_HEART_RATETODAY_HEART_RATEYESTERDAY_HEART_RATE
        Action heart rateToday heart rateYesterday heart rate


        1. Enable timing to measure heart rate

        The watch supports 24-hour timed measurement of heart rate, starting from 0:00, you can set the measurement interval, the time interval is a multiple of 5 minutes.

        xxxxxxxxxx// The measurement interval = interval * 5 minutesbleConnection.enableTimingMeasureHeartRate(interval);
        1. Disable timing to measure heart rate

        Turn off the timing to measure the heart rate.

        xxxxxxxxxxbleConnection.disableTimingMeasureHeartRate();
        1. Query timing to measure heart rate status

        The query timing measures the heart rate on state, and the result is called back by CRPDeviceTimingMeasureHeartRateCallback.onTimingMeasure().

        xxxxxxxxxxbleConnection.queryTimingMeasureHeartRate(CRPDeviceTimingMeasureHeartRateCallback);
        1. Query today's heart rate measurement data

        Today's heart rate measurement is divided into two types, which are obtained according to the measurement method supported by the corresponding watch. The result is called back by CRPHeartRateChangeListener.on24HourMeasureResult().

        xxxxxxxxxxbleConnection.queryTodayHeartRate(CRPHeartRateType);

        CRPHeartRateType:


        TIMING_MEASURE_HEART_RATEALL_DAY_HEART_RATE
        Timed heart rate measurement24-hour continuous measurement


        1. Query history heart rate

        Query the heart rate data of the previous day, and the result is called back by CRPHeartRateChangeListener.on24HourMeasureResult().

        xxxxxxxxxxbleConnection.queryHistoryTimingHeartRate(CRPHistoryDay)
        1. Query Action data

        Some watchs support heart rate measurement in a variety of motion modes. The measurements include other motion-related data such as heart rate and calories. This interface is used to obtain data such as calories. The watch can save the last three sports data. Supporting 24-hour continuous measurement of the watch, the exercise heart rate can be obtained from the 24-hour heart rate data according to the movement up time; other watch exercise heart rate and dynamic heart rate acquisition methods are consistent.

        xxxxxxxxxxbleConnection.queryMovementHeartRate();

        CRPMovementHeartRateInfo:


        typestartTimeendTimevalidTimestepsdistancecalories
        Sport modeStart time (unit: milliseconds)End time (unit: milliseconds)Effective duration of exercise (unit: second)Number of steps (partial motion mode is not supported)Active distance (partial motion mode is not supported)Calories


        Sport mode:


        WALK_TYPERUN_TYPEBIKING_TYPEROPE_TYPEBADMINTON_TYPEBASKETBALL_TYPEFOOTBALL_TYPESWIM_TYPE
        WalkingRunbicyclerope skippingbadmintonbasketballfootballSwim


        1. Start measure once heart rate

        Start measuring a single heart rate and the result is called back by CRPHeartRateChangeListener.onOnceMeasureComplete().

        xxxxxxxxxxbleConnection.startMeasureOnceHeartRate();
        1. Stop measure  once heart rate

        End a once measurement. A measurement time that is too short will result in no measurement data.

        xxxxxxxxxxbleConnection.stopMeasureOnceHeartRate();
        1. Query history once heart rate

          Call back through CRPHeartRateChangeListener.onHistoryHeartRate(Listlist);

          xxxxxxxxxxbleConnection.queryHistoryHeartRate();

        2.22 Blood pressure

        1. Set blood pressure listener

          All blood pressure related data will be recalled via CRPBloodPressureChangeListener.

        xxxxxxxxxxbleConnection.setBloodPressureChangeListener(CRPBloodPressureChangeListener);
        1. Start measure blood pressure

          Start measuring blood pressure.

        xxxxxxxxxxbleConnection.startMeasureBloodPressure();
        1. Stop measure blood pressure

          Stop measuring blood pressure, too short a measurement time will result in no measurement results. The measurement results are called back via CRPBloodPressureChangeListener.onBloodPressureChange().

        xxxxxxxxxxbleConnection.stopMeasureBloodPressure();
        1. Enable continue blood pressure

          xxxxxxxxxxbleConnection.enableContinueBloodPressure();
        2. Disable continue blood pressure

          xxxxxxxxxxbleConnection.disableContinueBloodPressure();
        3. Query continue blood pressure state

          Call back through CRPBloodPressureChangeListener.onContinueState(boolean state).

          xxxxxxxxxxbleConnection.queryContinueBloodPressureState();
        4. Query last 24 hour blood pressure

          Call back through CRPBloodPressureChangeListener.onContinueBloodPressure(CRPBloodPressureInfo info);

          xxxxxxxxxxbleConnection.queryLast24HourBloodPressure();
        5. Query history once blood pressure

          Call back through CRPBloodPressureChangeListener.onHistoryBloodPressure();

          xxxxxxxxxxbleConnection.queryHistoryBloodPressure();

        2.23 Blood oxygen

        1. Set blood oxygen listener

          All blood oxygen related data will be called back via CRPBloodOxygenChangeListener.

        xxxxxxxxxxbleConnection.setBloodOxygenChangeListener(CRPBloodOxygenChangeListener);
        1. Start Measure blood oxygen

          Start measuring blood oxygen.

        xxxxxxxxxxbleConnection.startMeasureBloodOxygen();
        1. Stop measure blood oxygen

          Stop measuring blood oxygen, too short a measurement time will result in no measurement results. The result is called back by CRPBloodOxygenChangeListener.onBloodOxygenChange().

        xxxxxxxxxxbleConnection.stopMeasureBloodOxygen();
        1. Enable timing measure blood oxygen

          xxxxxxxxxx// The measurement interval = interval * 5 minutesbleConnection.enableTimingMeasureBloodOxygen(int interval);
        2. Disable timing measure blood oxygen

          xxxxxxxxxxbleConnection.disableTimingMeasureBloodOxygen();
        3. Query timing measure blood oxygen state

          Call back through CRPBloodOxygenChangeListener.onTimingMeasure(int interval);

          xxxxxxxxxxbleConnection.bleConnection.queryTimingBloodOxygenMeasureState();
        4. Query timing blood oxygen

          Call back through CRPBloodOxygenChangeListener.onContinueBloodOxygen(CRPBloodOxygenInfo info);

          xxxxxxxxxxbleConnection.queryTimingBloodOxygen(CRPBloodOxygenTimeType timeType);
        5. Enable continue blood oxygen

          xxxxxxxxxxbleConnection.enableContinueBloodOxygen();
        6. Disable continue blood oxygen

          xxxxxxxxxxbleConnection.disableContinueBloodOxygen();
        7. Query continue blood oxygen state

          Call back through CRPBloodOxygenChangeListener.onContinueState(boolean state);

          xxxxxxxxxxbleConnection.queryContinueBloodOxygenState();
        8. Query last 24 hour blood oxygen

          Call back through CRPBloodOxygenChangeListener.onContinueBloodOxygen(CRPBloodOxygenInfo info);

          xxxxxxxxxxbleConnection.queryLast24HourBloodOxygen();
        9. Query history once blood oxygen

          Call back through CRPBloodOxygenChangeListener.onHistoryBloodOxygen();

          xxxxxxxxxxbleConnection.queryHistoryBloodOxygen();

        2.24 Take a photo

        1. Enable camera view

        xxxxxxxxxxbleConnection.enterCameraView();
        1. Exit camera view

          xxxxxxxxxxbleConnection.exitCameraView();
        2. Set photo monitor

          Long press the watch photo interface, you can trigger the camera's camera command, callback through CRPCameraOperationListener.onTakePhoto ().

        xxxxxxxxxxbleConnection.setCameraOperationListener(CRPCameraOperationListener);

        2.25 Mobile phone related operations

        The watch can issue commands such as music control and hang up calls, and callbacks via CRPPhoneOperationListener.onOperationChange().

        xxxxxxxxxxbleConnection.setPhoneOperationListener(CRPPhoneOperationListener);

        CRPPhoneOperationType:


        MUSIC_PLAY_OR_PAUSEMUSIC_PREVIOUSMUSIC_NEXTREJECT_INCOMINGVOLUME_UPVOLUME_DOWNMUSIC_PLAYMUSIC_PAUSE
        Play / PausePreviousNextHang up the phone. You can press and hold the trigger on the call alert interface.Turn up the volumeTurn down the volumePlayPause


        2.26  RSSI

        1. Set RSSI listening

          The watch RSSI is read and the result is called back by CRPDeviceRssiListener.onDeviceRssi().

        xxxxxxxxxxbleConnection.setDeviceRssiListener(CRPDeviceRssiListener);
        1. Read the watch RSSI

          Read the real-time RSSI value of the watch.

        xxxxxxxxxxbleConnection.readDeviceRssi();

        2.27 Shut down

        The watch is turned off.

        xxxxxxxxxxbleConnection.shutDown();

        2.28 Do not disturb

        1. Set the do not disturb time

          The watch supports the Do Not Disturb period. Do not display message push and sedentary reminders during the time.

        xxxxxxxxxxbleConnection.sendDoNotDistrubTime(CRPPeriodTimeInfo);

        CRPPeriodTimeInfo:


        startHourstartMinuteendHourendMinute
        Start time hours (24-hour clock)Start time minutesEnd time hours (24-hour clock)End time minutes


        1. Get the do not disturb time

          Check the do not disturb time set by the watch. The result is called back by CRPDevicePeriodTimeCallback.onPeriodTime().

        xxxxxxxxxxbleConnection.queryDoNotDistrubTime(CRPDevicePeriodTimeCallback);

        CRPDevicePeriodTimeCallback:


        DO_NOT_DISTRUB_TYPEQUICK_VIEW_TYPE
        Do not disturbQuick view


        2.29 Breathing light

        1. Set the breathing light

          Some watchs support breathing lights and turn the breathing lights on or off.

        xxxxxxxxxxbleConnection.sendBreathingLight(enable);
        1. Get the status of the breathing light

          Check the watch breathing light on. The result is called back via CRPDeviceBreathingLightCallback.onBreathingLight().

        xxxxxxxxxxbleConnection.queryBreathingLight(CRPDeviceBreathingLightCallback);

        2.30 ECG

        1. Set ECG listener

          All ECG related data will be recalled via CRPBleECGChangeListener.

          xxxxxxxxxxbleConnection.setECGChangeListener(CRPBleECGChangeListener);
        2. Measuring ECG

          Start measuring ECG. The ECG measurement time is 30S, and the user needs to touch the left and right electrodes of the watch with both hands. ECG measurement data is retraced during CRPBleECGChangeListener.onECGChange().

          xxxxxxxxxxbleConnection.startECGMeasure();
        3. Stop measuring ECG

          Used to actively stop ECG measurement during ECG measurement.

          xxxxxxxxxxbleConnection.stopECGMeasure();

        4. Detect new ECG measurement methods

          In the new measurement mode, the watch can save the last unsent measurement result; the old version does not.

          xxxxxxxxxxboolean newMeasurementVersion = bleConnection.isNewECGMeasurementVersion();
        5. Get the last ECG data

          Query the ECG data saved by the watch, and the result is called back by CRPBleECGChangeListener.onECGChange().

          xxxxxxxxxxbleConnection.queryLastMeasureECGData();
        6. Send heart rate during ECG measurement

          Using the data obtained by the measurement, the instantaneous heart rate is calculated by the ECG algorithm library and sent to the watch.

          xxxxxxxxxxbleConnection.sendECGHeartRate(heartRate);

        2.31 Physiological cycle

        1. Set the physiological cycle reminder

          Some watch support the female physiological cycle reminder, set or turn off the physiological cycle reminder.

          xxxxxxxxxxbleConnection.sendPhysiologcalPeriod(CRPPhysiologcalPeriodInfo);

          CRPPhysiologcalPeriodInfo:

          physiologcalPeriodmenstrualPeriodstartDatemenstrualReminderovulationReminderovulationDayReminderovulationEndReminderreminderHourreminderMinute
          Physiological cycle (unit: day)Menstrual period (unit: day)Start date of this physiological cycleMenstruation begins to remind (the day before the menstrual period reminder)Ovulation reminder (reminder the day before ovulation)Ovulation Day Reminder (Reminder on the day before ovulation)Reminder at the end of the ovulation period (a reminder one day before the end of the ovulation day)Reminder time (hours, 24 hours)Reminder time (minutes)
        2. Query physiological cycle reminder

          Query the reminder information of the physiological cycle that has been saved in the watch. The result is called back via CRPDevicePhysiologcalPeriodCallback.

          xxxxxxxxxxbleConnection.queryPhysiologcalPeriod(CRPDevicePhysiologcalPeriodCallback);

        2.32 Find phone

        1. Set find phone listener

          xxxxxxxxxxbleConnection.setFindPhoneListener(CRPFindPhoneListener);
        2. Start find phone

          After receiving the callback to find the mobile phone for the bracelet, the APP can vibrate and play the ringtone reminder, and you can reply to the bracelet by this command. Some bracelets support this command.

          xxxxxxxxxxbleConnection.startFindPhone();
        3. End finding phone

          When the user retrieves the phone, the vibrating and ringing reminder ends, and the bracelet can be returned by this command. Some bracelets support this command.

          xxxxxxxxxxbleConnection.stopFindPhone();

        2.33 Music player

        1. Set player state

          Some bracelets can show that the music player is playing or paused.

          xxxxxxxxxxbleConnection.setMusicPlayerState(CRPMusicPlayerStateType);

          CRPMusicPlayerStateType:

          MUSIC_PLAYER_PAUSEMUSIC_PLAYER_PLAY
          pauseplay
        2. Set song name

          Some bracelets can display information about the song being played.

          xxxxxxxxxxbleConnection.sendSongTitle(title);
        3. Set lyrics

          xxxxxxxxxxbleConnection.sendLyrics(String lyrics);
        4. Close Music Control

          xxxxxxxxxxbleConnection.closeMusicControl();
        5. Set max volume

          xxxxxxxxxxbleConnection.sendCurrentVolume(int volume);
        6. Set Current volume

          xxxxxxxxxxbleConnection.sendMaxVolume(int volume);

        2.34 Drink water reminder

        1. Set drinking reminder

          Set information such as the start time of drinking reminders.

          xxxxxxxxxxbleConnection.sendDrinkWaterReminder(CRPDrinkWaterPeriodInfo);

          CRPDrinkWaterPeriodInfo:

          enablestartHourstartMinutecountperiodcurrentCups
          enablehoursminutesremindersreminder intervalthe current water intake
        2. Query drinking reminder

          Query the current drinking reminder information of the bracelet. The result is called back through CRPDeviceDrinkWaterPeriodCallback.onDrinkWaterPeriod(CRPDrinkWaterPeriodInfo).

          xxxxxxxxxxbleConnection.queryDrinkWaterReminderPeriod(CRPDeviceDrinkWaterPeriodCallback);

        2.35 Heart rate alarm

        1. Set the heart rate alarm value

          Sets the heart rate alarm status and alarm heart rate value.

          xxxxxxxxxxbleConnection.setMaxHeartRate(heartRate, enable);
        2. Query the heart rate alarm value

          Query the status of the bracelet heart rate alarm and the heart rate alarm value. The result is called back by CRPDeviceMaxHeartRateCallback.onHeartRate(heartRate, enable).

          xxxxxxxxxxbleConnection.queryMaxHeartRate(CRPDeviceMaxHeartRateCallback);

        2.36 Training

        1. Start training

          Some bracelets support instructions to turn on the training mode. type is the same as CRPMovementHeartRateInfo.type.

          xxxxxxxxxxbleConnection.startMovement(type);
        2. Sets training state

          Training is divided into three states, pause, continue and end.

          xxxxxxxxxxbleConnection.setMovementState(CRPMovementHeartRateStateType);

          CRPMovementHeartRateStateType:

          MOVEMENT_PAUSEMOVEMENT_CONTINUEMOVEMENT_COMPLETE
          pausecontinuecomplete
        3. Monitor training state

          The training state can also be modified on the bracelet, and the measurement state can be obtained in time through CRPMovementStateListener.onMeasureState().

          xxxxxxxxxxbleConnection.setMovementStateListener(CRPMovementStateListener);
        4. Set training listener

          xxxxxxxxxxbleConnection.setTrainingListener(CRPTrainingChangeListener listener);
        5. Query History Training

          Query the training records stored in the watch.The query results will be delivered through CRPTrainingChangeListener.onHistoryTrainingChange(Listlist).

          xxxxxxxxxxbleConnection.queryHistoryTraining();
        6. Query Training Detail

          Query the detail data of a certain training. The query results will be delivered through CRPTrainingChangeListener.onTrainingChange(CRPTrainingInfo info).

          xxxxxxxxxx// onHistoryTrainingChange(List list) // id is the index of the list.bleConnection.queryTraining(int id);

        2.37 Protocol version

        1. Gets the protocol version

          The current protocol version can be divided into V1 and V2.

          xxxxxxxxxxCRPProtocolVersion version = bleConnection.getProtocolVersion();

        2.38 Temperature

        1. Start measuring once temperature

          After starting the measurement, the real-time temperature is called back through CRPTempChangeListener.onMeasureTemp(), and the measurement state is called back through CRPTempChangeListener.onMeasureTempState().

          xxxxxxxxxxbleConnection.startMeasureTemp();
        2. Stop measuring once temperature

          xxxxxxxxxxbleConnection.stopMeasureTemp();
        3. Enable timing temperature measurement

          After the timing measurement is turned on, the bracelet automatically measures temperature every half an hour.

          xxxxxxxxxxbleConnection.enableTimingMeasureTemp();
        4. Disable timing temperature measurement

          xxxxxxxxxxbleConnection.disableTimingMeasureTemp();
        5. Query the timing of temperature measurement status

          The measurement state is called back through CRPTimingMeasureTempStateCallback.onMeasureState().

          xxxxxxxxxxbleConnection.queryTimingMeasureTempState(CRPTimingMeasureTempStateCallback);
        6. Query the result of timing temperature measurement

          The bracelet can save the last two days of timing temperature measurement data, and the result is called back through CRPTempChangeListener.onTimingMeasureTemp(CRPTempInfo).

          xxxxxxxxxxbleConnection.queryTimingMeasureTemp(CRPTempTimeType);

          CRPTempTimeType:

          TODAYYESTERDAY
          todayyesterday

          CRPTempInfo:

          typemeasureIntervaltempList
          CRPTempTimeTypeMeasurement interval (unit: minute, default 30 minutes)temperature data
        7. Sets listener of temperature measurement results

          xxxxxxxxxxbleConnection.setTempChangeListener(CRPTempChangeListener);
        8. Enable continuous body temperature measure

          xxxxxxxxxxbleConnection.enableContinueTemp();
        9. Disable continuous body temperature measure

          xxxxxxxxxxbleConnection.disableContinueTemp();
        10. Query continuous body temperature measure state

          Callback via CRPTempChangeListener.onContinueState().

        xxxxxxxxxxbleConnection.queryContinueTempState();
        1. 查询最近 24 小时的体温测量记录

          通过CRPTempChangeListener.onContinueTemp()回调。

          xxxxxxxxxxbleConnection.queryLast24HourTemp();

        2.39 Display time

        1. Sets display time

          time is the screen-on time, unit: second, cannot exceed 255.

          xxxxxxxxxxbleConnection.sendDisplayTime(time);
        2. Query display time

          The result is called back by CRPDeviceDisplayTimeCallback. onDisplayTime().

          xxxxxxxxxxbleConnection.queryDisplayTime(CRPDeviceDisplayTimeCallback);

        2.40 Hand washing reminder

        1. Set hand washing reminder

          Set the start time of hand washing, switch and other information.

          xxxxxxxxxxbleConnection.sendHandWashingReminder(CRPHandWashingPeriodInfo);

          CRPHandWashingPeriodInfo:

          enablestartHourstartMinutecountperiod
          enablehoursminutesremindersreminder interval
        2. Query hand washing reminder

          The result is called back through CRPDeviceHandWashingPeriodCallback.onHandWashingPeriod (CRPHandWashingPeriodInfo).

          xxxxxxxxxxbleConnection.queryHandWashingReminderPeriod(CRPDeviceHandWashingPeriodCallback);

        2.41 Sets local city

        xxxxxxxxxxbleConnection.sendLocalCity(city);

        2.42 Temperature system

        1. Sets temperature system

          Switch the temperature system of the bracelet.

          xxxxxxxxxxbleConnection.sendTempUnit(CRPTempUnit);

          CRPTempUnit:

          CELSIUSFAHRENHEIT
          CelsiusFahrenheit
        2. Query temperature system

          The result is called back by CRPWeatherChangeListener.onTempUnitChange().

          xxxxxxxxxxbleConnection.queryTempUnit();

        2.43 Brightness

        1. Set brightness

          xxxxxxxxxxbleConnection.sendBrightness(int brightness);
        2. Set brightness

          Call back through CRPDeviceBrightnessCallback.onBrightness(int cuurent, int max);

          xxxxxxxxxxbleConnection.queryBrightness(CRPDeviceBrightnessCallback callback);

        2.44 Classic Bluetooth address

        Call back through CRPBtAddressCallback.onAddress(String address);

        xxxxxxxxxxbleConnection.queryBtAddress(CRPBtAddressCallback callback);

        2.45 Contacts

        1. Check support contacts

          Call back through CRPContactConfigCallback.onContactConfig(CRPContactConfigInfo info);

          xxxxxxxxxxbleConnection.checkSupportQuickContact(CRPContactConfigCallback callback);

          CRPContactConfigInfo:

          supportedcountwidthheight
          Whether to support quick contactsThe count of contactsThe contact avatar widthThe contact avatar height
        2. Query current contacts count

          Call back through CRPContactCountCallback.onContactCount(int count);

          xxxxxxxxxxbleConnection.queryContactCount(CRPContactCountCallback callback);
        3. Set contacts listener

          The setting result is called back through CRPContactListener.

          xxxxxxxxxxbleConnection.setContactListener(CRPContactListener listener);
        4. Set contacts

          CRPContactInfo:

          idwidthheightaddressnamenumber
          The contacts idThe contacts avatar widthThe contacts avatar heightThe contacts avatar storage addressThe contacts nameThe contacts phone number
          xxxxxxxxxxbleConnection.sendContact(CRPContactInfo info);
        5. Set contacts avatar

          The transfer progress is called back through CRPFileTransListener.

          xxxxxxxxxxbleConnection.sendContactAvatar(int id, Bitmap bitmap, int timeout, CRPFileTransListener listener);
        6. Delete contacts

          xxxxxxxxxxbleConnection.deleteContact(int id);
        7. Delete contacts avatar

          xxxxxxxxxxbleConnection.deleteContactAvatar(int id);
        8. Delete all contacts

          xxxxxxxxxxbleConnection.clearContact();
        9. Query whether the watch supports special symbols

          Whether the three symbols +*# are supported in the phone number.

          xxxxxxxxxxbleConnection.queryContactNumberSymbol(CRPContactNumberSymbolCallback);

        2.46 Battery Saving

        1. Set battery saing listener

          xxxxxxxxxxbleConnection.setBatterySavingListener(CRPBatterySavingChangeListener listener);
        2. Set battery saving state

          After the battery saving mode is turned on, the quick view will be turned off.

          xxxxxxxxxxbleConnection.sendBatterySaving(boolean enable);
        3. Get battery saving state

          Call back through CRPBatterySavingChangeListener.onBatterSaving(boolean enable);

          xxxxxxxxxxbleConnection.queryBatterySaving();

        2.47 Pill Reminder

        1. Query support pill reminder

          Call back through CRPPillReminderCallback. onPillReminder(int supportCount, Listlist);

          CRPPillReminderInfo:

          iddateOffsetnamerepeatreminderTimeList
          The pill idStart taking medicine in a few daysThe pill nameThe take medicine every few daysThe time point and dosage of the medicine each day

          CRPPillReminderInfo.ReminderTimeBean:

          timecount
          The time to take medicine(For example, 100 is 01:40 am)The dose
          xxxxxxxxxxbleConnection.queryPillReminder(CRPPillReminderCallback callback);
        2. Set pill reminder

          xxxxxxxxxxbleConnection.sendPillReminder(CRPPillReminderInfo info);
        3. Delete pill reminder

          xxxxxxxxxx// CRPPillReminderInfo.idbleConnection.deletePillReminder(int id);
        4. Clear pill reminder

          xxxxxxxxxxbleConnection.clearPillReminder();

        2.48 Tap to wake

        1. Query tap to wake state

          Call back through CRPTapToWakeCallback.onWakeState(boolean enable);

          xxxxxxxxxxbleConnection.queryTapToWakeState(CRPTapToWakeCallback callback);
        2. Set tap to wake state

          xxxxxxxxxxbleConnection.sendTapToWakeState(boolean enable);

        2.49 Create Bond

        Some watches require the user to confirm the pairing on the watch after the connection is successful.

        xxxxxxxxxx// After the pairing is completed, you need to save the paired key (bytes), and send the same key after connecting again, without confirming again.bleConnection.createBond(byte[] bytes, CRPDeviceBondStateCallback callback);

        2.50 HRV

        1. Set HRV listener

          xxxxxxxxxxbleConnection.setNewHrvListener(CRPNewHrvChangeListener listener);
        2. Query support HRV measure

          xxxxxxxxxxbleConnection.querySupportNewHrv();
        3. Start measure once HRV

          xxxxxxxxxxbleConnection.startMeasureNewHrv();
        4. Stop measure once HRV

          xxxxxxxxxxbleConnection.stopMeasureNewHrv();
        5. Query HRV History

          xxxxxxxxxxbleConnection.queryHistoryNewHrv();

        2.51 Stress

        1. Set stress listener

          xxxxxxxxxxbleConnection.setStressListener(CRPStressListener listener);
        2. Query support stress measure

          If there is a reply, it means that the pressure measurement is supported, and if there is no reply, it means that it does not support it. Via the CRPSressListener.onSupportStress() callback.

          xxxxxxxxxxbleConnection.querySupportStress();
        3. Start once stress

          Callback via CRPSressListener.onStressChange() when the measurement is complete.

          xxxxxxxxxxbleConnection.startMeasureStress();
        4. Stop once stress

          xxxxxxxxxxbleConnection.stopMeasureStress();
        5. Query stress history

          The watch can save the last 10 measurement records, through the CRPStressListener.onHistoryStressChange() callback.

          xxxxxxxxxxbleConnection.queryHistoryStress();
        6. Enable timing stress measure

          The measurement interval is fixed at half an hour.

          xxxxxxxxxxbleConnection.enableTimingStress();
        7. Disable timing stress measure

          xxxxxxxxxxbleConnection.disableTimingStress();
        8. Query timing stress measure status

          Call back through CRPStressListener.onTimingStressStateChange().

          xxxxxxxxxxbleConnection.queryTimingStressState();
        9. Query history timing stress

          The watch can save the measurement records of the last two days through the callback of CRPStressListener.onTimingStressChange().

          xxxxxxxxxxbleConnection.queryTimingStress(CRPStressDate);

        2.52 E-Card

        1. Query the count of supported E-Card

          If there is a reply, it means that the watch supports E-Card, and if there is no reply, it means that it does not support it. Via the CRPElectronicCardCountCallback.onElectronicCardCount() callback.

          xxxxxxxxxxbleConnection.queryElectronicCardCount(CRPElectronicCardCountCallback)

          CRPElectronicCardCountInfo:

          counturlBytesLimitsavedIdList
          The max count supportedurl max bytes(utf-8)List of saved E-Card IDs
        2. Set E-Card

          xxxxxxxxxxbleConnection.sendElectronicCard(CRPElectronicCardInfo);

          CRPElectronicCardInfo:

          idtitleurl
          E-Card id (cannot exceed supported max)the titleurl (the watch uses this url to produce the corresponding QR code)
        3. Delete E-Card

          xxxxxxxxxxbleConnection.deleteElectronicCard(id);
        4. Query E-Card Details

          Via the CRPElectronicCardCallback.onElectronicCard() callback.

          xxxxxxxxxxbleConnection.queryElectronicCard(id, CRPElectronicCardCallback);
        5. E-Card Sorting

          Reorder E-Cards by idList.

          xxxxxxxxxxbleConnection.sendElectronicCardList(idList);

        2.53 Calendar Event

        1. Set calendar event listener

          xxxxxxxxxxbleConnection.setCalendarEventListener(CRPCalendarEventListener);
        2. Query support calendar event

          The max number of events and saved reminder events are supported through the CRPCalendarEventListener.onSupportEvent() callback.

          xxxxxxxxxxbleConnection.querySupportCalendarEvent();
        3. Set calendar event

          xxxxxxxxxxbleConnection.sendCalendarEvent(CRPCalendarEventInfo);

          CRPCalendarEventInfo:

          idtitlestartHourstartMinuteendHourendMinutetime
          The event IDThe event titleStart time(hour)Start time(minute)End time(hour)End time(minute)reminder time(Timestamp, unit: second)
        4. Detele calendar event

          xxxxxxxxxxbleConnection.deleteCalendarEvent(id);
        5. Query calendar event details

          Via the CRPCalendarEventListener.onEvent() callback.

          xxxxxxxxxxbleConnection.queryCalendarEvent(int id);
        6. Set calendar event on status and reminder time

          xxxxxxxxxx// minutes indicates how long to remind in advance, unit: minute, cannot be negative.bleConnection.sendCalendarEventReminderTime(boolean enable, int minutes);
        7. Query calendar event on status and reminder time

          Via the CRPCalendarEventListener.onEventReminderTime() callback.

          xxxxxxxxxxbleConnection.queryCalendarEventReminderTime();
        8. Delete all calendar event

          xxxxxxxxxxbleConnection.clearCalendarEvent();

        2.54 GPS

        Some watches support GPS positioning, which can be used to record the movement track of outdoor training.

        1. Set GPS listener

          xxxxxxxxxxbleConnection.setGpsChangeListener(CRPGpsChangeListener)
        2. Query history GPS

          Callback through CRPGpsChangeListener.onHistoryGpsPathChange(ListtimeList). timeList is a collection of start time (time stamp, unit: second).

          xxxxxxxxxxbleConnection.queryHistoryGps()
        3. Query GPS details

          Through CRPGpsChangeListener.onGpsPathChange(CRPGpsPathInfo) callback.

          xxxxxxxxxx// time is the timestamp when GPS training started (unit: second)bleConnection.queryGpsDetail(int time)

          CRPGpsPathInfo:

          timelocationList
          the start timelongitude and latitude collection
        4. Send epo file

          Updating the epo file can help the watch to search stars more quickly. After receiving the CRPGpsChangeListener.onUpdateEpoChange(CRPEpoType) callback, send the corresponding epo file to the watch.

          xxxxxxxxxxbleConnection.sendEpoFile(File, CRPEpoType, CRPFileTransListener)

        2.55 Vibration Strength

        1. Set vibration strength

          Adjust the vibration strength of the watch motor.

          xxxxxxxxxxbleConnection.sendVibrationStrength(CRPVibrationStrength strength)
        2. Query vibration strength

          A callback indicates support, and no callback indicates that the watch does not support this function. Callback via CRPVibrationStrengthCallback.onVibrationStrength().

          xxxxxxxxxxbleConnection.queryVibrationStrength(CRPVibrationStrengthCallback callback)

         

        About
        About
        • Our Company
        • Products
        • Contact Us
        • SDK Integration
        • Media Center
        Program
        Program
        • Quality Management
        • GPS WATCH TRACKER
        • After Sales Service
        Support
        Support
        • Warranty
        • Service Policy
        • Privacy Policy
        • APP Download
        • Download
        Subscribe
        Sign up to get the latest on sales, new releases and more...
        © 2017 Shenzhen Blueberl Electronic Technology Co., Ltd. All Rights Reserved