android - OnCapabilityChanged 在手机上工作但不在可穿戴设备上工作

标签 android wear-os android-wear-data-api android-wear-2.0

仔细按照这篇文章中的说明操作后:

How to detect when android wear device gets disconnected?我终于设法让我的手机使用 onCapabilityChanged 检测可穿戴设备何时连接。

我在可穿戴设备方面遵循了完全相同的步骤,我试图检测手机何时连接到可穿戴设备,但从未触发 onCapabilityChanged

wear.xml(手机端)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="android_wear_capabilities">
        <item>track_phone</item>
    </string-array>
</resources>

在 AndroidManifest(可穿戴)中

<service android:name=".BackgroundService.WearableService"
            android:enabled="true"
            android:exported="true" >
            <intent-filter>
                <action android:name="com.google.android.gms.wearable.CAPABILITY_CHANGED" />
                <data android:scheme="wear" android:host="*"/>
            </intent-filter>
        </service>

在 WearableService 中(在可穿戴设备上)

override fun onCapabilityChanged(p0: CapabilityInfo?) {
    super.onCapabilityChanged(p0)
    Log.i("WearableService", "Capability changed: {${p0?.nodes?.size ?: "null"}")
}

我确定该服务已启动,因为我有另一个进程正在运行

我在手机端做同样的事情。当我断开/连接蓝牙 onCapabilityChanged 在手机服务中被正确调用时, 但不适用于可穿戴设备的服务。

有什么想法吗?

最佳答案

在尝试一切让它工作之后,我选择使用标准的 Service 而不是 WearableListenerService

我在 Service 上实现了 CapabilityClient.OnCapabilityChangedListener:

override fun onCapabilityChanged(p0: CapabilityInfo) {
        Log.i("WearService", "Wearable Capability changed: {${p0?.nodes?.size ?: "null"}")
    }

并注册监听器:

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Wearable.getCapabilityClient(this).addListener(this, CAPABILITY)
        return super.onStartCommand(intent, flags, startId)
}

关于android - OnCapabilityChanged 在手机上工作但不在可穿戴设备上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256345/

相关文章:

android - 用户删除事件时如何删除警报?

java - 在 RecyclerView 中切换项目 View 类型

wear-os - GridViewPager的页面位置

Android Wear生成两个apk

java - 如何使用 Android Beam 确认我的消息已收到?

android - 无法在 Android Studio 北极狐中导入模块

android - 有没有可以扫描BLE信标的可穿戴设备?

android - 如何将旧数据从 DataAPI 同步到可穿戴设备

android - Android Wear 是否支持动画

android - 我们需要用什么来代替 Android 中的 wear api?