问题描述
我有一个使用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 (将#修改为@)