First, I use the ANT+ plugin sampler to verify my ANT+ hardware, it can work well.
Then, I download the APP "endomondo" to my phone and use it to scan my heart rate sensor, but it can't find the heart rate sensor.
I check the log and find ANT+ radio service doesn't kick off when endomondo is scanning.
I try to install the same APP to another phone, it can works well, heart rate sensor can be found.
Comparing the logs, in the successful case, there's additional messages before ANT+ radio service kick off.
-----
02-07 07:53:18.025: W/ContextImpl(20924): Implicit intents with startService are not safe: Intent { act=com.dsi.ant.IAnt_6 } android.content.ContextWrapper.bindService:517 com.dsi.ant.AntInterface.initService:281 com.wahoofitness.api.e.f:378
02-07 07:53:18.065: I/ActivityManager(1151): Start proc com.dsi.ant.service.socket for service com.dsi.ant.service.socket/com.dsi.ant.service.AntRadioService: pid=22449 uid=10219 gids={50219, 3003}
02-07 07:53:18.155: W/ContextImpl(22449): Implicit intents with startService are not safe: Intent { act=com.dsi.ant.server.IAntHal } android.content.ContextWrapper.bindService:517 com.dsi.ant.chip.hal.AntAidlInterface.initService:470 com.dsi.ant.chip.hal.AntAidlInterface.init:221
-----
It seems the workable phone uses old ANT+ stack, which includes the "AntInterface".
And my phone uses new ANT+ stack, which implements HAL layers and without the "AntInterface"
I wonder to know how to let APP layer kick off ANT+ service in new ANT+ stack.