在开发 HarmonyOS Connect 生态产品时,你是否也有设备功能调测方面的疑问?现在华为鸿蒙开发者官方为大家带来了设备功能调测相关的常见问题答疑,让你快速获得解决方案。
一、设备连接
Q1: 手机碰一碰 NFC 标签,弹框提示“系统错误”,如何处理?
问题现象
手机碰一碰待连接设备,弹框提示“系统错误”,更换 Wi-Fi 后报错仍无法清除。
可能原因
手机时间与网络时间不一致。
设备发起请求时,会将手机时间与设备激活码等信息传到云端。云端会对手机时间与网络时间的一致性进行校验,以确保请求的合法性。如果两者的时间差大于一小时,则请求无效。
A: 解决措施
将手机的时间设置为“自动设置”,使手机与当前网络上的时间同步。以华为手机为例:
1.进入手机“设置”。
2.选择“系统和更新> 日期和时间”。
3.开启“自动设置”开关。
Q2: 手机碰一碰 NFC 标签,提示“未获取到应用信息”。
问题现象
手机碰一碰 NFC 标签,提示“未获取到应用信息”。
可能原因
原因一:服务意图配置的 HarmonyOS 标签的产品型号不是当前的 ProductID。
原因二:NFC 标签写入的码流中的 ProductID 有误。
A: 解决措施
1.确认服务意图配置的 HarmonyOS 标签的产品型号是否为当前的 ProductID。
登录华为快服务智慧平台。
在服务列表中找到对应的原子化服务,单击“编辑”。
选择“配置> HarmonyOS 标签”,确认设备标签中的“产品型号”是否正确。如果不正确,需要重新配置。
2.确认 NFC 标签码流的 ProductID 字段是否正确。如果不正确,需要重新写入。
Q3: 碰一碰 NFC 标签无法拉起 FA,NFC 服务提示“发现 NFC 标签,点击启动应用”。
问题现象
手机碰一碰待连接设备,NFC 服务弹出提示“发现 NFC 标签,点击启动应用”,无法正常拉起原子化服务。
图 1 原子化服务无法正常拉起
可能原因
NFC 标签码流录入错误,导致手机系统无法正确解析 NFC 码流。
A: 解决措施
1.在 Device Partner 平台上申请 NFC 标签码流,并根据实际设备信息生成可用的标签码流。
2.将码流重新写入 NFC 标签,并重试碰一碰拉起原子化服务。
Q4: 设备处于开机状态且手机网络正常,但智慧生活 App 上设备卡片显示离线状态。
问题现象
设备处于开机状态且手机网络正常,但智慧生活 App 上设备卡片显示离线状态,且串口工具不停重复打印设备侧日志“+NOTICE:SCANFINISH/+NOTICE:DISCONNECTED”。
可能原因
设备已连接的热点的 SSID 或密码发生变更。
A: 解决措施
方式一:将热点 SSID 和密码改回,模组即可重新连接热点,恢复正常。
方式二:将模组重置,重新给模组配网。
Q5: 模组在 STA 模式下连接路由器热点,路由器断电重启或模组离开热点范围再返回后无法重连热点。
问题现象
1.模组短距测试中,执行如下命令设置模组打开 STA 模式。
AT+STARTSTA
2.执行如下命令,扫描模组周围热点。
AT+SCAN
3.执行如下命令,查看扫描结果。
AT+SCANRESULT
4.参考执行如下命令,连接热点。命令中的四个值分别代表 SSID、MAC、热点类型以及密码,请根据实际情况修改。
AT+CONN="hisilicon",1a:01:f1:c9:7c:92,3,"123456789"
5.执行如下命令,打开 DHCP。
AT+DHCP=wlan0,1
6.路由器断电重启或者模组离开热点范围再返回,此时发现模组无法重新连接该热点。
可能原因
模组未配置重连策略。
A: 解决措施
参考如下命令执行重连策略,命令中的参数需要根据实际情况修改,具体取值参见芯片手册。
AT+RECONN=1,10,3600,5
二、设备配网
Q6: 手机首次碰一碰 NFC 标签,拉起的是非配网 FA 页面。
问题现象
手机首次碰一碰 NFC 标签,拉起的是非配网 FA 页面(比如控制 FA 页面)。
可能原因
原因一:服务意图配置的 Ability 名称不是配网 FA 页面的 Ability 名称。
原因二:原子化服务包中其他模块的 Ability 与配网 FA 的 Ability 重名,导致拉起的 FA 页面有误。
A: 解决措施
1. 确认服务意图配置的“服务名”是否为配网 FA 的 Ability 名称。
登录华为快服务智慧平台。
在服务列表中找到对应的原子化服务,单击“编辑”。
选择“配置> FA 信息”,确认配置方式中的“服务名”是否为配网 FA 的 Ability 名称。如果不正确,需要重新配置。
2. 确认其他模块 Ability 名称是否与配网 FA 的 Ability 重名。
在 DevEco Studio 项目下,逐个排查其他模块中的“src/main/config.json”文件。
在 json 文件中,找到“module/mainAbility”配置项,检查是否与配网 FA 的 Ability 同名。
找到并选中重名的 Ability,单击右键,选择“Refactor> Rename”,重命名文件。
Q7: 碰一碰拉起配网 FA,在 SoftAP 配网进度达 30% 时失败,显示“当前网络不可用”。
问题现象
碰一碰拉起配网 FA,在进行 SoftAP 配网时配网进度在 30% 失败,提示“当前网络不可用”。
可能原因
原因一:模组侧因长时间不启用进入待机状态,关闭了配网所需的设备 AP。
原因二:NFC 标签码流中 0406 字段后 6 字节写入的数据与设备开启的 AP MAC 地址不一致。
A: 解决措施
1.确保设备 AP 无线网络名称正确。
登录华为智能硬件合作伙伴平台,单击右上角的“管理中心”。
单击对应的产品,进入“集成开发”页面。在配网设置中查看并记录“无线网络名称”(SSID) 的取值。
在手机中打开“设置”,选择“WLAN > 可用 WLAN”,确保该列表中存在与记录的 SSID 相同的设备 AP。
若无相同 SSID 的设备 AP,请尝试重启设备。
若产品 ID 一致但 SSID 名称不一致,请重新烧录模组使 SSID 与记录的一致。
2.修改标签码流 MAC 字段并重新烧录 NFC。
Q8: 碰一碰拉起配网 FA,无法进行 NAN 配网。
问题现象
碰一碰拉起配网 FA,无法进行 NAN 配网,FA 日志中打印碰一碰 Intent 参数 nanSessionId 字段的值为“NAN_DEVICE_NOT_FOUND”。
可能原因
用于配网的模组不支持 NAN 配网。
手机与模组之间距离大于 30cm。
上一次碰一碰拉起配网 FA 进行 NAN 配网未完成,模组的 NAN 通道将锁定一段时间。
A: 解决措施
1.咨询产品对应模组厂商,确认模组是否支持 NAN 配网。
2.将手机靠近至模组 30cm 半径以内后重新碰一碰配网。
3.等待模组日志打印以下信息时,即可进行 NAN 配网 (x 代表任意数字)。
Send: msgType[x] msgId[x] msgLen[x]
若模组日志打印显示以下信息,则表示当前模组只能进行 SoftAP 配网,请重启模组或重新烧录模组。
wait STA join AP
Q9: 设备配网过程中,配网 FA 获取不到 Wi-Fi 列表。
问题现象
设备配网过程中,配网 FA 获取不到 Wi-Fi 列表。
可能原因
原因一:配网模块中没有注册“NetConfigAbility”。
原因二:不止一个配网模块注册了“NetConfigAbility”。
A: 解决措施
1.确认配网模块是否有注册“NetConfigAbility”。
在配网模块下,找到该模块下的“MainAbility”,双击打开。
检查该文件的 onStart 方法中是否含有 NetConfigAbility.register () 的代码。
2.确认是否存在多个注册了“NetConfigAbility”的配网模块。
逐个排查各个配网模块“MainAbility”的 onStart 方法是否都注册了“NetConfigAbility”。
只在一个配网模块中保留“NetConfigAbility”的注册,删除其他配网模块“NetConfigAbility”的注册代码。
Q10: 设备配网过程中,使用 SoftAP 的方式未扫描到设备。
问题现象
设备配网过程中,使用 SoftAP 的方式未扫描到设备。
图 2 未扫描到设备
可能原因
原因一:Wi-Fi 设备未开启。
原因二:Wi-Fi 设备已开启,getWifiList 接口读取的是 Wi-Fi 缓存信息。
原因三:NFC 标签码流的 MAC 地址与 Wi-Fi 设备的 MAC 地址不一致。
A: 解决措施
1.确认 Wi-Fi 设备已开启。
2.间隔一段时间(约 2min)后,重新扫描设备。如果多次扫描仍提示配网失败,重试重置设备。
3.确认 NFC 标签码流的 MAC 地址是否与 Wi-Fi 设备的 MAC 地址一致。如果不一致,则需要重新烧录正确的 NFC 码流信息。
Q11: 设备配网失败且设备侧日志显示“Parse symbol authentication response message failed”。
问题现象
设备配网的过程中,串口工具打印的设备侧日志显示“Parse symbol authentication response message failed”,配网流程结束后,智慧生活 App 显示设备配网失败。
可能原因
原因一:hal_sys_param.c 文件中的产品信息未配置正确。
原因二:设备激活码与产品信息不匹配。
原因三:Device Partner 平台管理中心上添加的调测设备 SN 与 HalGetSearial 接口返回的 value 值不一致。
A: 解决措施
1.检查 hal_sys_param.c 文件中企业英文名、产品型号、品牌英文名信息是否配置正确,确保和 Device Partner 平台管理中心上的产品信息保持一致。
2.在 Device Partner 平台管理中心上重新申请设备激活码,并写入设备。
3.检查 hal_sys_param.c 文件中 HalGetSearial 接口的实现,可通过打印 value 方式查看其返回值是否和 Device Partner 平台管理中心上配置的调测设备 SN 是否一致(注意大小写也需要保持一致)。
三、其他问题
Q12: 如何获取 HinkSvc 日志?
A: 1.打开手机的“文件管理”应用,进入“浏览”页面。
2.在“位置”列表中,选择“我的手机”。
3.进入“Android> data > com.huawei.hilink.framework > files > Log > com.huawei.hilink.framework”文件夹。此文件夹中的文件即为 HinkSvc 日志。
Q13: 如何抓取 HarmonyOS 手机蓝牙 HCI 日志?
A: 1.确认手机已进入开发者模式并开启“USB 调试”功能。
在手机中打开“设置”。
选择“关于手机”,查找版本号。
快速点击“版本号”多次,直到提示开发者模式已打开,返回上一层。
选择“系统和更新> 开发人员选项”,并开启“USB 调试”。
2.在电脑中运行 cmd 命令。
3.在命令行中输入如下命令,导出的文件即为手机蓝牙 HCI 日志。
hdc file recv /data/log/bt ./
Q14: 在帐号登录 FA 界面单击“华为帐号快捷登录”,没有响应。
问题现象
在帐号登录 FA 界面单击“华为帐号快捷登录”,没有响应。
可能原因
原因一:没有在 AppGalley Connect 网站添加应用指纹证书。
原因二:“config.json”文件中“metaData”下“customizeData”没有配置 appid 或者 appid 配置错误。
A: 解决措施
1.在 AppGalley Connect 网站添加应用指纹证书。
2.在“config.json”文件中配置 appid 即为 Client ID。
"metaData": { "customizeData": [ { "name": "com.huawei.hms.client.appid", "value": "*********" } ]},
更多 HarmonyOS Connect 文档查看:点此链接