我正在使用 Matter 标准开展一个物联网项目。
直到今天,当我打开未配对的 Matter 设备时,我的手机上会出现一个叠加层。另外,我可以在 Google Home 或 Matter 示例应用程序中手动添加设备。
但是,今天叠加层没有再出现。我尝试从 Google Home > 设备 > 添加设备手动添加设备;但是当我按启用物质的设备时,它会返回到设备页面。
设置 > Google > 所有服务 > 设备和共享中没有问题设备选项。此外,当我在此菜单中选择Devices时,会出现一个加载屏幕并且永远不会结束加载。
在 Matter 示例应用程序中按 + 按钮也不会打开任何内容。这是当我按下按钮时
adb logcat
的输出:
01-23 22:23:04.657 19286 19286 D GHSAFM-3p-ecosystem-HomeFragment: addDeviceButton.setOnClickListener
01-23 22:23:04.657 19286 19286 D GHSAFM-3p-ecosystem-HomeViewModel: unsubscribeToPeriodicUpdates()
01-23 22:23:04.658 19286 19286 D GHSAFM-3p-ecosystem-HomeViewModel: CommissionDevice: starting
01-23 22:23:04.661 19286 19286 D GHSAFM-3p-ecosystem-HomeFragment$setupObservers: commissionDeviceStatus.observe: status [com.google.homesampleapp.TaskStatus$InProgress@4acfe1a]
01-23 22:23:04.682 19286 19347 W ConnectionStatusConfig: Dynamic lookup for intent failed for action: com.google.android.gms.home.service.START
01-23 22:23:04.694 19286 19347 W GmsClient: unable to connect to service: com.google.android.gms.home.service.START on com.google.android.gms
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: com.google.android.gms.common.api.ApiException: 17: API: CommissioningClient.API is not available on this device. Connection failed with: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@18.2.0:3)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at com.google.android.gms.common.api.internal.ApiExceptionMapper.getException(com.google.android.gms:play-services-base@@18.2.0:1)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at com.google.android.gms.common.api.internal.zag.zad(com.google.android.gms:play-services-base@@18.2.0:1)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at com.google.android.gms.common.api.internal.zabq.zaE(com.google.android.gms:play-services-base@@18.2.0:7)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at com.google.android.gms.common.api.internal.zabq.zaD(com.google.android.gms:play-services-base@@18.2.0:2)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at com.google.android.gms.common.api.internal.zabq.zar(com.google.android.gms:play-services-base@@18.2.0:24)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at com.google.android.gms.common.api.internal.zabt.run(com.google.android.gms:play-services-base@@18.2.0:12)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at android.os.Handler.handleCallback(Handler.java:942)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at android.os.Handler.dispatchMessage(Handler.java:99)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at android.os.Looper.loopOnce(Looper.java:211)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at android.os.Looper.loop(Looper.java:300)
01-23 22:23:04.698 19286 19286 E GHSAFM-3p-ecosystem-HomeViewModel: at android.os.HandlerThread.run(HandlerThread.java:67)
01-23 22:23:04.698 19286 19286 D GHSAFM-3p-ecosystem-HomeFragment$setupObservers: commissionDeviceStatus.observe: status [com.google.homesampleapp.TaskStatus$Failed@d9f1b54]
我的手机上似乎不再有
com.google.android.gms.home
了。我尝试卸载 Google Play Services 更新,重新安装它,将其更新到测试版,卸载并重新安装 Google Home 和 Matter 示例应用程序,甚至恢复出厂设置!这些都没有解决问题。
有没有办法强制安装
com.google.android.gms.home
模块而不是等待自动模块交付?
电话信息:
当今 Android 上的许多重要功能都取决于 home 模块的可用性,该模块是 Google Play 服务的一部分。当应用程序在构建依赖项中定义对
com.google.android.gms:play-services-home
的依赖项时,会自动下载此模块。
解决此问题的最简单方法是在您的设备上下载 Google Home 应用程序,然后调试一台设备。如果您可以完成设备设置,则设备上应该有一个可用的模块。 (GHA 也将
play-services-home
列为依赖项)
您可以通过将设备连接到工作站并在终端上执行以下步骤来检查设备上可用的所需组件的版本:
adb devices
phoneid=<device_id>
containerinfo=$(adb -s $phoneid shell dumpsys package com.google.android.gms | grep "versionName" || true)
homemoduleinfo=$(adb -s $phoneid shell dumpsys activity provider com.google.android.gms.chimera.container.GmsModuleProvider | grep "com.google.android.gms.home" || true)
optionalhomemoduleinfo=$(adb -s $phoneid shell dumpsys activity provider com.google.android.gms.chimera.container.GmsModuleProvider | grep "com.google.android.gms.optional_home" || true)
policyhomemoduleinfo=$(adb -s $phoneid shell dumpsys activity provider com.google.android.gms.chimera.container.GmsModuleProvider | grep "com.google.android.gms.policy_home" || true)
versionfile=$logtimestamp"_versions.txt"
echo "Saving version info to $versionfile"
echo "Container version:" >> $versionfile
echo $containerinfo >> $versionfile
echo "" >> $versionfile
echo "Home Module version:" >> $versionfile
echo $homemoduleinfo >> $versionfile
echo "" >> $versionfile
echo "Optional Home Module version:" >> $versionfile
echo $optionalhomemoduleinfo >> $versionfile
echo "" >> $versionfile
echo "Policy Home Module version:" >> $versionfile
echo $policyhomemoduleinfo >> $versionfile
echo "" >> $versionfile
容器版本是您的 Google Play 服务的版本。主模块是运行事务功能的主要模块。此外,您应该会看到“可选主模块”或“策略主模块”列出的版本号,具体取决于您获取软件包的方式。这些是包含附加功能的子模块,将与主模块一起在后台下载。
如果缺少这些组件,您可能会收到com.google.android.gms.common.api.ApiException: 17
异常,这表明对 Google Play 服务中的模块进行的 API 调用失败。
Google Home 的示例应用程序项目确实依赖于特定版本的 Home 组件,因此请检查您的设备上是否有正确的版本。 无法手动触发这些模块的下载,但保持手机电量充足并连接到 WiFi 可能会有所帮助。在某些 OEM 上,在设备上添加/删除帐户也可能会调用 Play 服务的模块刷新。但无论如何,Google Play Services 确实有每天刷新模块的例程,因此您的手机应该会在 24 小时内自动下载所需的模块。