如何解决从Android手持设备Kotlin查找Wear OS节点
我有一个使用Kotlin与Wear OS应用程序进行通信的Android应用程序构建。需要共享数据并在Wear App中启动新活动。
在Docs之后,通过在Wear应用程序的values文件夹下创建一个名为wear.xml的文件来宣传此功能。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="android_wear_capabilities">
<item>verify_mc_wear_app</item>
</string-array>
</resources>
class McFragment:Fragment(),OnCapabilityChangedListener {
private var mWearNodesWithApp: Set<Node>? = null
private var mAllConnectednodes: List<Node>? = null
override fun onViewCreated(view: View,savedInstanceState: Bundle?) {
super.onViewCreated(view,savedInstanceState)
activity?.let { Wearable.getCapabilityClient(it).addListener(this,MC_TRANSCRIPTION_CAPABILITY_NAME) }
findWearDevicesWithApp()
}
override fun onCapabilityChanged(capabilityInfo: CapabilityInfo) {
mWearNodesWithApp = capabilityInfo.nodes
findAllWearDevices()
}
private fun findWearDevicesWithApp() {
print("findWearDevicesWithApp()")
val capabilityInfoTask = activity?.let {
Wearable.getCapabilityClient(it)
.getCapability(
CM_TRANSCRIPTION_CAPABILITY_NAME,CapabilityClient.FILTER_REACHABLE
)
}
capabilityInfoTask?.addOnCompleteListener { task ->
if (task.isSuccessful) {
print("Capability request succeeded.")
val capabilityInfo = task.result
mWearNodesWithApp = capabilityInfo!!.nodes
print("Capable Nodes: $mWearNodesWithApp")
} else {
print("Capability request Failed to return any results.")
}
}
}
private fun findAllWearDevices() {
print("findAllWearDevices()")
val nodeListTask = activity?.let { Wearable.getNodeClient(it).connectednodes }
nodeListTask?.addOnCompleteListener { task ->
if (task.isSuccessful) {
print("Node request succeeded.")
mAllConnectednodes = task.result
} else {
print("Node request Failed to return any results.")
}
}
}
companion object {
private const val CM_TRANSCRIPTION_CAPABILITY_NAME = "verify_cm_wear_app"
}
}
此功能获得成功,但返回了0个节点-> mWearNodesWithApp = capabilityInfo!!.nodes
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。