Notice (Android)

1.Correct way to use SDK

SDK adopts singleton mode, please use ICDeviceManager.shared() to obtain an instance

2.What are the differences in how to use iOS SDK, Android SDK and mini program plug-ins?

These three SDKs are the same in terms of naming and design patterns, and the externally exposed models, enumerations, interfaces, etc. are the same. If you have developed one end, you can quickly get started developing on the other end. In multi-player development, if one end encounters a problem, you can also discuss with the person on the other end to see if there is a mistake in usage.

iOS/Android SDK features are the most complete. The mini program plug-in function is relatively streamlined, mainly missing ota and algorithms, and body fat data is obtained through web api requests.

3.Does it support Android X?

Supported, the SDK does not use UI related libraries

4.Why do I need location permissions?

This is an official requirement of Android, not a requirement of Wallai. Only Android 6.0 and above system versions need to enable positioning. Remember to enable positioning, not just give permission. For positioning-related questions, please refer to Android official: https://developer.android.com/guide/topics/connectivity/bluetooth

5.When is the SDK initialized?

It is recommended to initialize when the app starts. Most interfaces in the SDK can only be called after the initialization callback onInitFinish. The SDK only needs to be initialized once during the app life cycle. Note: Before calling the initialization interface, please make sure you have Bluetooth and positioning permissions. If you do not have permissions, apply for permissions and then call the initialization interface.

6.What thread are the SDK interface callbacks on?

All callbacks on the main thread

7.After the SDK is initialized, the Bluetooth symbol on the device also lights up. Why is there no data uploaded?

Please confirm whether you have called ICDeviceManager.shared().setDelegate() to set the delegate. All data and status will be called back through the set delegate.

8.Does the data in the SDK have to go through the iCOMON server?

No, the SDK parses data locally and does not send data parsing and saving to the iCOMON server.

9.Does the SDK store the data uploaded by the device?

No, the SDK only parses the transfer data to the app and does not save it inside the SDK, so the app needs to save it after receiving the data.

10.Why is there no onInitFinish callback after calling the SDK initialization interface?

Most of the time it is because the delegate is not set before initialization.

11.When addDevice is called to add a device, the interface callback prompts that the addition is successful. Why is there still no data?

addDevice calls back the interface operation code, not the code for successful connection. The SDK supports multi-device connections, and all device status is passed through the onDeviceConnectionChanged callback.

12.When addDevice is called to add a device, why does the interface callback prompt ICAddDeviceCallBackCodeFailedAndExist?

This code means that the device has already been added and there is no need to add it again. If you confirm that this device requires the SDK to connect, please do not call removeDevice after receiving this code, otherwise the SDK will not connect to the device.

13.After calling addDevice to add a device, when is removeDevice called?

After addDevice successfully adds a device, the SDK will manage the connection of the device by itself. If the device screen is disconnected and the device turns on, the SDK will automatically connect to the device. If the SDK is not needed to connect to the device, call removeDevice . Note: After the APP is closed, all resources in the SDK will be released, so after reopening the app, you need to addDevice again to connect to the device.

14.After calling scanDevice, turning off Bluetooth and then turning it on again does not result in a callback for scanning devices.

Because Bluetooth is turned off and on manually by the user, if the user turns off Bluetooth during scanning, it means that the user does not want to scan, so the SDK does not scan automatically. If you want to continue scanning after Bluetooth is turned on, you can call scanDevice after calling back the Bluetooth open state in onBleState.

15.After calling scanDevice, when is stopScan called?

When there is no need to scan the device, call stopScan. After calling scanDevice, if stopScan is not called, the SDK will not stop scanning.

16.When is updateUserInfo called?

This method is called when the user information is updated. Because after the device is connected, the SDK will automatically deliver user information.

17.What does the st unit on the scale mean?

The scale unit st is a combined unit, such as 190.5lb. When the unit on the scale is st, the scale displays 13:8.5. The conversion method is the integer part: 190.5 / 14 = 13.6 = 13, the decimal part: 190.5 – 13 * 14 = 8.5

18.What is the difference between onReceiveWeightData and onReceiveMeasureStepData?

onReceiveWeightData is the interface used by old devices to upload data. When the attribute isStabilized in the data is true, it means that the measurement is over.

onReceiveMeasureStepData is the interface for new devices to upload data. The received step is ICMeasureStepMeasureOver which means the measurement ends.

19.When will historical data be pulled back?

Not all devices have historical data. Which devices have the historical data function needs to be confirmed with the business. For most scales, historical data is mostly reported after a weight measurement is completed. For rope skipping, historical data will be reported after the connection is made. If real-time data is generated, historical data uploading will stop. Historical data will continue to be uploaded when no real-time data is generated.

20.Does the battery capacity of the skipping rope support active reading?

Currently, active reading is not supported. The current method of skipping rope's power is to upload it with real-time data every time, and the power update will be more timely than active reading.

21.The difference between setUserList and updateUserInfo

updateUserInfo represents the current user’s information

setUserList represents a user list, which is delivered to the device for user identification when offline.

22.How many users does setUserList support at most?

Supports up to 8, please ensure that weight has a value, otherwise the device cannot recognize the user when offline. Identification logic: There is and is only one user in the user list whose weight is within plus or minus 2kg of the current measured weight, which is the same user.

23.Does the SDK support OTA?

The SDK has OTA functionality, but not all devices support ota. Upgrade interface upgradeDevice

24.After calling upgradeDevice, how long is the timeout?

The SDK currently does not have a timeout limit. The logic of the SDK is to avoid problems and will always try to make the device ota successful. Therefore, the app can define the timeout for the end of OTA based on the normal OTA time required by the device.

25.After upgradeDevice is called, the device is already being upgraded. If the user turns off Bluetooth and then turns it on again, the SDK does not continue to upgrade.

SDK logic: If the device is being upgraded, but the user turns off Bluetooth, it means that the user does not want to upgrade, and the SDK will not continue to upgrade. If the APP wants to continue upgrading, it can call upgradeDevice again.

26.Why does the historical data in the onReceiveWeightHistoryData callback have no body fat information?

Because the scale uploads weight and impedance data, and body fat data is related to user information. Therefore, the SDK gives the data to the APP, and the APP claims the data according to its own logic. After claiming, you can call reCalcBodyFatWithWeightData in getBodyFatAlgorithmsManager to calculate body fat data.

27.What information needs to be filled in in reCalcBodyFatWithWeightData?

For 4-electrode single frequency:

  • weightData: To assign values ​​weight_kg, imp, bfa_type, electron
  • userInfo: To assign height, age, sex, peopleType

For 4-electrode dual frequency:

  • weightData: To assign values weight_kg, imp, imp2, bfa_type, electron
  • userInfo: To assign height, age, sex, peopleType

For 8-electrode single frequency:

  • weightData: To assign values weight_kg, imp, imp2, imp3, imp4, imp5, bfa_type, electron
  • userInfo: To assign height, age, sex, peopleType

For 8-electrode dual frequency:

  • weightData: To assign values ​​weight_kg, impairments, bfa_type, electron
  • userInfo: To assign height, age, sex, peopleType

General:

  • weightData: To assign values ​​weight_kg, impairments, bfa_type, electron
  • userInfo: To assign height, age, sex, peopleType

28.What is the data upload logic of BLE+WIFI devices?

If BLE is connected, data will be sent from Bluetooth and not from WIFI. If BLE is not connected, data will be uploaded from WIFI.

29.Does the broadcasting equipment support switching units and delivering user information?

Most of the current broadcast equipment only supports data reporting and does not support delivery.

30.Why does the calorie consumption still change after stopping skipping rope?

The calculation principle of calorie consumption is based on the algorithm calculation of the length of rope skipping and body weight. Although skipping has stopped, the duration of skipping is still increasing, so the calorie consumption will still change.

31.OTA callback failure or no callback device disconnect after success

This is because whether the callback fails or succeeds, it means that the OTA process is over. This is the highest event priority. Receiving these two statuses means that the device must be disconnected. It is meaningless to call back the disconnected status.

32.What architecture does the SDK support?

arm64-v8a、armeabi、armeabi-v7a、x86、x86_64

33.The App does not need to support so many architectures, how to streamline it?

Can be added to defaultConfig in gradle

android{
    ...
    defaultConfig{
        ...
        ndk {
            abiFilters 'armeabi', 'arm64-v8a'
        }
    }
}

What follows abiFilters is the architecture required for app packaging, which can be configured as required.

34.Bluetooth and positioning permissions have been granted, and the SDK has been initialized. Why can’t the device still be scanned?

Most of the reasons encountered so far are because positioning is turned off. Bluetooth operation not only requires positioning permission, but also requires positioning to be turned on.

35.Need to display muscle mass, but in ICWeightData, there is only muscle rate?

Muscle mass can be obtained by converting muscle rate and body weight, such as: Muscle mass = Muscle rate * Weight (kg) .The same is true for other body fat data such as water content and fat mass.

GUANGDONG WELLAND TECHNOLOGY CO.,LTD All Right ReservedUpdate time: 2024-02-05 14:49:17

results matching ""

    No results matching ""

    results matching ""

      No results matching ""