Я разрабатываю приложение Android с модулем Watch (applicationID для приложения и часов одинаково). Я тестирую связь с реальным устройством и эмулятором часов, но с прошлого дня в WearableListenerService не приходит никаких сообщений, и я не понимаю, почему.
Это моя служба (приложение) в манифесте
<service
android:name=".receivers.PhoneMessageService"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
<data
android:host="*"
android:scheme="wear" />
</intent-filter>
</service>
Приложение Listener
class PhoneMessageService : WearableListenerService() {
override fun onMessageReceived(message: MessageEvent?)
{
message?.let { msg ->
sendActionToReceiver(msg.path, msg)
}
}
С помощью этого метода я получаю узлы (я всегда получаю узел моего телефона, инфицированные узлы всегда имеют размер 1):
private fun getNodes(context: Context, mode: WearCommunicationMode, callback: ((Node?) -> Unit))
{
val capability = Wearable.getCapabilityClient(context).getCapability(mode.capabilityKey, CapabilityClient.FILTER_REACHABLE)
capability.addOnSuccessListener { task ->
val nodes = task?.nodes
if(nodes != null && nodes.size > 0) {
val bestNodeID = nodes.find { node -> node.isNearby } ?: nodes.first()
callback.invoke(bestNodeID)
}else{
callback.invoke(null)
}
}
}
Размер узла равен 1, поэтому я подключен к устройству, но onMessageReceived больше не вызывается ... что я делаю не так?