common problem
APP logic design related
Whether to bind or pair the device?
A concept needs to be clarified here. The binding or pairing mentioned in the question refers to adding a paired Bluetooth device in Android/iOS. Usually some standard equipment will be needed, such as Bluetooth headset, stylus, bracelet. These will need to be set in the Bluetooth settings of the mobile phone system. But our scale is not used, we will ask for instructions
Bluetooth 4.0, or BLE, can be used directly without binding a Bluetooth device. The private protocol used by our scales cannot be used directly via the mobile phone system Bluetooth, which is true of almost all body fat scales on the market. The added device in our APP (Light Cow Health) only allows the APP to remember the user's scale, not the Bluetooth pairing of the mobile phone system. The process of adding equipment also guides the user how to use body fat scales. Our small program is made in a simple and rude way. After adding the scale and opening it directly, connect to the scale and measure.
The customer can decide whether to add this logic. It is recommended that if it is made into a small function module of APP, it can be directly made into a scale similar to our small program, directly measured on the scale, and displayed data.
How to make the user respond immediately after stepping on the scale
Our own APP (Light Cow Health), in normal use, is to let the user open the APP, step on the scale, and measure immediately, which can reduce the user's operation steps. In fact, to put it bluntly, after opening the APP, the APP automatically calls the entire set of logic of the SDK, without requiring the user to click to select a device or the like. The specific implementation steps are as follows:
- After entering the measurement interface, check the Bluetooth status
- Bluetooth is on, start scanning
- Scan to the body fat scale to determine whether it is an added device or connect directly without judgment (the location depends on the APP logic)
- Successful connection, display measurement animation
- The measurement is completed and the measurement results are displayed
After the measurement is completed, is it necessary to immediately disconnect the Bluetooth connection
There is usually no need to actively disconnect the scale unless the user exits the measurement interface.
If you need to measure the immediate disconnection, it is best to be able to delay 2s disconnection. Some of our early successes, if the measurement is completed immediately disconnected, the scale may appear unexpected.
How to analyze data
Whether a data is standard、Low, etc., this can refer to our SDK indicator standard description.
Our Demo also shows how to analyze the data, but the Demo interface only shows the rating registration, and it does not make a beautiful report like our APP.
APPID is related to configuration file
What is appid and configuration file?What is the role?
The appid is a unique identifier created by Yolanda for customers, and will be registered in our background. A given appid usually does not change. The appid 123456789
in the demo is the appid that we tested and let customers experience. The appid ’s characteristics are unstable and may be modified at any time. If you have reached a formal cooperation intention, it is recommended to apply to us for appid for business or sales. The application process is very fast and can be completed in a few minutes.
The configuration file is some encrypted data used with appid, and the model is agreed、algorithm、Indicators and other information. Different customer requirements are all different, so we encapsulate customer customization requirements in this configuration file.
Can different clients use the same APPID
Android and iOS can use one appid, the applet/applet plug-in cannot be the same as the appid of the SDK
Whether the SDK is offline?What data will it send to Yolanda cloud?
In the method initSdk,-the-sdk-will-send-a-request-to-verify-with-our-cloud-that-the-configuration-file-needs-to-be-updated.-if-you-need-to-update,-the-latest-configuration-file-will-be-downloaded-(the-configuration-file-is-very-small,-generally-512-bytes), if you do not need to update, then do nothing.
The SDK supports offline mode. If customers specifically request it, we will set the configuration of this item in the configuration file to offline
. After setting to offline, the SDK no longer sends out any network requests (this can be verified with the packet capture tool). The configuration file is no longer updated. If you need to add a model or indicator, you need to apply for a configuration file with our company again, and then the developer Replace manually.
Initialization prompt appid error
- Check if the initialization file and the appid used match
- Check if the introduced SDK is up to date
Missing data returned after measurement
If it is only the weight and BMI data, you can refer to there is no data such as body fat rate after the measurement is completed.
If the body fat rate can be measured, but the indicator you want is missing, the indicator is usually not included in the configuration file. You need to communicate with our business/sales to increase this indicator.
After adding indicators, our company will re-send a configuration file, which needs to be replaced.
Send the model ID of the scanned device to our company for confirmation
SDK function related
Is it possible to judge whether the scale is off?
For ordinary Bluetooth scale
anddual-mode scale
, when the device is not connected, scan the obtained device object QNBleDevice, there is an attribute isScreenOn
, which indicates Whether the screen is bright. After connecting the device, it is impossible to directly judge whether the device is bright or not, but for some scales, the connection will be disconnected when the screen is turned off.
The isScreenOn attribute only indicates that the device is bright when the SDK scans to it, and the subsequent device screen state changes, and QNBleDevice will not be dynamically updated. The new QNBleDevice callback needs to be scanned to determine.
For the 'broadcast scale', the ability to scan to the device is the state of being turned on. If it cannot be scanned, it is usually not turned on.
The connection device has been unsuccessful or will be disconnected soon after success
- Check if the device is connected by others
- Check whether the currently connected device has been paired in the system Bluetooth, if it is already paired, you need to cancel the pairing
- Some mobile phones need to be scanned before they can connect successfully. Scan the device before connecting
SDK returns no location permission error
- Check if it is correct ACCESS_COARSE_LOCATION with ACCESS_FINE_LOCATION Both have applied, and both permissions have been verified in the SDK
- Whether to compile version 26 and above, if yes, both permissions need to be applied separately (new features in 8.0)
For Android 6.0 and above, Google classifies Bluetooth as a part of the positioning function. When using Bluetooth scanning, the user needs to authorize the positioning permission, otherwise when the scan is called, the system will prompt that the positioning permission is required A considerable part of mobile phones (about 1/3 of the appearance, the device cannot be scanned without turning on the location service switch, most of them are native, and the domestic system will be optimized for this, it is not necessary)
The SDK returns the wrong file, confirm that the file location is not abnormal, and confirm that the file is used in the demo without exception
- Check if there is so library added
- Check if the packaged apk file contains so library
Monitor callbacks for data or devices, etc., multiple callbacks at the same time
- First determine whether or not, set multiple monitoring. When monitoring is not used, it must be set to null
- Determine whether it is a measurement of wearing shoes, this may lead to the situation of completing multiple measurements in a short time
After the measurement is completed, there is no data such as body fat rate
- Check whether the information is correct, mainly birthday (used to calculate age)、Whether the two parameters of height exceed the normal value range
- Check if any shoes are taken off. When wearing shoes, the biological impedance cannot be measured, so the body fat rate and other indicators cannot be calculated
I can't scan the device, what should I do
- Check if Bluetooth is turned on、Have you stepped on the scale, is the phone too far away from the scale (more than 10 meters)
- Check if the scanned device has been connected by others
- If it is Android, you can check whether there is location permission, and whether there is a location service switch
- Try to restart Bluetooth, if not, try restarting Bluetooth.
Is there a bracelet SDK?
Our company has smart bracelet devices and SDK. However, the SDK is not completely open to the outside world temporarily. If you have any intention, you can contact our company for business negotiation.
Whether the SDK can only do protocol analysis, Bluetooth scanning and connection are managed by customers themselves
This is achievable, the implementation of ordinary Bluetooth scale and Bluetooth broadcast scale will be different.
It is technically difficult to implement Bluetooth scanning and connection management by yourself. If you do not have relevant Bluetooth development experience, this operation is not recommended. If you insist on this operation, we will think that the customer has richer Bluetooth development experience.
- Write your own Bluetooth protocol proxy class to implement each Bluetooth operation method
- Write Data Monitor Callback Class QNScaleDataListener and use [QNBleApi.setBleDeviceDiscoveryListener to register in SDK.
- Scan the Bluetooth yourself and pass the scanned information to the SDK. Use the method QNBleApi.buildDevice to create a Yolanda Bluetooth device
- Create user object, use method QNBleApi.buildUser
- Create Bluetooth Protocol Processing Class
- Make a Bluetooth connection
- The connection is successful, and after finding the service is successful, call prepare method of Bluetooth protocol processing class
- Process the data of QNScaleDataListener callback
- After receiving stable data, process it by yourself.
Your official website API《Scale status definition》The status here is 0-9, why is it promising in the demo you provided“-1”'S state (and it will indeed return to this state)
-1 always exists, indicating that the connection is lost by default, that is, the connection is disconnected. Usually received after the scale actively disconnects. We will unify this state to the disconnected state as soon as possible.
other problems
Is it possible to give the calculation method of body fat rate and other indicators?
The algorithm of these indicators belongs to my driver and cannot be provided.
What is the data stored on the scale
When the ordinary Bluetooth scale is not connected to the mobile phone during weighing, the scale will store the data in the scale body. When the Bluetooth is connected next time, the data will be transferred to the APP. This data is distributed by the APP, and the assigned user can hand over to the SDK to calculate the complete data.
Can provide Bluetooth protocol
In principle, we will not provide Bluetooth protocol, if you really need, you can communicate with our business/sales
Why the data measured by the SDK is different from the data of Light Cow or Light Cow Health
Yolanda has several sets of algorithms, different algorithms that different devices may use.
In addition, we have a health question mechanism in our own APP, which will let the user answer 2 questions and use different algorithms according to the user's answer.
The algorithm mechanism in the SDK is usually a unified algorithm, immutable. In other words, the same scale uses our APP measurement and SDK measurement, the calculation data and weight are the same, there may be many differences. Therefore, our company does not recommend using our APP and SDK measurement data for comparison. Customers only need to be concerned about whether the given algorithm is suitable and stable.
How to troubleshoot problems in the online version after abnormal Bluetooth connection
First check the user's mobile phone model, if possible, try to use the same model as the customer to test.
Register the log output interface QNLogListener, record related logs (you can save log files), and send them to our developers for analysis.
After Bluetooth is searched and connected, the foot stays on the body fat scale for a few seconds, and then remove the foot, it will return the status code of the measurement completion (no data is returned in the method of returning data)
Why can we search for Bluetooth without any operation (no one is near the body fat scale within 10-30 minutes)
When weighing, if the APP is not connected, the scale will cache this data in it, and it will also broadcast for 5-30 minutes after the screen is closed (it varies depending on the production batch). After the APP is connected, the cached data can be received and displayed to the client. This function is used to solve the problem that the user does not need a mobile phone when weighing. After weighing, sit on the sofa and turn on the mobile phone and receive the data just now.