微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从 AdbBridge 配置 LSM6DS3

如何解决无法从 AdbBridge 配置 LSM6DS3

我正在尝试通过 Showcase App 的 AdbBridge 功能配置 LSM6DS3 的 TapParams。
我用

读取当前配置没有问题
.\adb.exe shell am broadcast -a "android.intent.action.MOVESENSE"  --es type get --es path Component/LSM6DS3/TapParams --es value '''{}'''

但是当我尝试用

写回我的配置(甚至是我用上一个命令得到的配置)时
.\adb.exe shell am broadcast -a "android.intent.action.MOVESENSE"  --es type put --es path Component/LSM6DS3/TapParams --es value '''{\"doubleTapDur\": 0,\"doubleTapQuiet\": 0,\"tapThs\": 2,\"axes\": 0}'''

我在 logcat 上收到此错误

2021-06-14 16:48:42.735 22813-22813/com.movesense.showcaseapp E/AdbBridge: onError()
com.movesense.mds.mdsException: Failed status: 400,reason: BAD_REQUEST
    at com.movesense.mds.internal.operation.mdsRestOperation.onResponse(mdsRestOperation.java:81)
    at com.movesense.mds.internal.operation.mdsResponSEOperation.protectedRun(mdsResponSEOperation.java:26)
    at com.movesense.mds.internal.workqueue.QueueOperation.run(QueueOperation.java:70)
    at com.movesense.mds.internal.workqueue.WorkQueueImpl.runoperation(WorkQueueImpl.java:79)
    at com.movesense.mds.internal.workqueue.WorkQueueImpl$1.run(WorkQueueImpl.java:30)
    at java.lang.Thread.run(Thread.java:760)

我的请求有什么问题?

解决方法

LSM6DS API 定义了一个名为“newParams”的放置参数。所以你的对象需要提供这样的正确名称(就像使用 MDS 从代码调用一样):

{\"newParams\":{\"doubleTapDur\": 0,\"doubleTapQuiet\": 0,\"tapThs\": 2,\"axes\": 0}}

完全披露:我为 Movesense 团队工作

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。