运行Matter示例应用报错:CommissioningClient.API不可用
遇到的错误核心是:com.google.android.gms.common.api.ApiException: 17: API: CommissioningClient.API is not available on this device,即设备无法访问Matter配网客户端API,以下是针对性的排查和解决步骤:
确认Google Play服务版本达标且为最新
Matter的CommissioningClient要求Google Play服务版本至少为22.36.14及以上,不要仅满足最低要求,直接前往Google Play商店将Play服务更新到最新版本。可在手机「设置→应用→Google Play服务」中查看当前版本号。实体设备需在Matter支持列表内
并非所有满足安卓版本要求的设备都支持Matter,目前官方支持的设备包括Pixel 6及后续机型、三星Galaxy S22/S23系列等。如果你的实体手机不在支持列表中,即使系统版本符合要求也无法使用该API。模拟器需满足特定配置
使用Pixel 6模拟器时,必须选择Android 13(Tiramisu)及以上且带有Google Play Store的系统镜像。创建虚拟设备后,打开模拟器内的Play商店,手动将Google Play服务更新到最新版本,否则会出现API不可用的问题。检查项目依赖配置
确认项目build.gradle中Matter相关依赖版本正确,比如:implementation 'com.google.android.gms:play-services-matter:16.0.0'确保版本与代码实验室要求一致,避免因依赖版本不匹配导致API无法调用。
验证设备Matter服务状态
进入手机「设置→Google→设备连接→Matter」,如果找不到该设置项,说明设备不支持Matter或Play服务未正确安装/更新。
附错误日志中文翻译:
E/GHSAFM-HomeViewModel: com.google.android.gms.common.api.ApiException: 17: API: CommissioningClient.API 在此设备上不可用。连接失败原因:ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@18.1.0:3)
at com.google.android.gms.common.api.internal.ApiExceptionMapper.getException(com.google.android.gms:play-services-base@@18.1.0:1)
at com.google.android.gms.common.api.internal.zag.zad(com.google.android.gms:play-services-base@@18.1.0:1)
at com.google.android.gms.common.api.internal.zabq.zaE(com.google.android.gms:play-services-base@@18.1.0:7)
at com.google.android.gms.common.api.internal.zabq.zaD(com.google.android.gms:play-services-base@@18.1.0:2)
at com.google.android.gms.common.api.internal.zabq.zar(com.google.android.gms:play-services-base@@18.1.0:24)
at com.google.android.gms.common.api.internal.zabt.run(com.google.android.gms:play-services-base@@18.1.0:12)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(Handler.java:67)
内容的提问来源于stack exchange,提问作者Leo

