首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用亚行与MOVESENSE通信的问题

使用亚行与MOVESENSE通信的问题
EN

Stack Overflow用户
提问于 2022-03-29 10:32:46
回答 1查看 44关注 0票数 1

我尝试遵循Movesense关于如何使用亚行进行白板通信的说明。这不像预期的那样起作用。

在一个侧面-我只是尝试设置一些传感器,以启动一些心率和运动测量,并将数据存储到日志。在30-40分钟后,我想停止测量,从每个设备中获取数据.我的第一个梦想是我可以在BLE上使用白板(来自Matlab,Python,LabVIEW,.)而不用使用亚行或类似的解决方案。但我想这有点太乐观了。

设置

  • 安装了亚行工具: OK
  • 在Android手机上启用USB调试:好的
  • 测试亚行可以安装应用程序并处理手机:好的
  • 已安装的sampleapp-debug-1.5.1.apk
    • 尝试使用adb安装:好的
    • 试图通过将文件复制到电话并在那里安装文件来安装:好的
    • 我收到消息说,示例应用程序不是为当前版本的Android编译的(我使用的是三星S10e,运行一个UI版本4.0和安卓版本12,安全修复级别01.02.2022)。

我的工作是英特尔的Mac运行11.6.5大Sur与充足的资源。

到目前为止我尝试过的

首先,我启动应用程序并连接到MOVESENSE设备。

在尝试来自Movesense的示例命令时,我得到:

打开LED:

代码语言:javascript
复制
fjp@fMac-19 sensorsw % adb shell am broadcast -a android.intent.action.MOVESENSE --es type put --es path Component/Led --es value '''{\"isOn\":true}'''
Broadcasting: Intent { act=android.intent.action.MOVESENSE flg=0x400000 (has extras) }
Broadcast completed: result=0

获取信息

只有在配额之间放置大括号时,Get Info才能工作。这两种变体见下面的结果。

代码语言:javascript
复制
fjp@fMac-19 sensorsw % adb shell am broadcast -a android.intent.action.MOVESENSE --es type get --es path Info --es value ''''''

Exception occurred while executing 'broadcast':
java.lang.IllegalArgumentException: Argument expected after "value"
    at com.android.modules.utils.BasicShellCommandHandler.getNextArgRequired(BasicShellCommandHandler.java:295)
    at android.content.Intent.parseCommandArgs(Intent.java:8329)
    at com.android.server.am.ActivityManagerShellCommand.makeIntent(ActivityManagerShellCommand.java:367)
    at com.android.server.am.ActivityManagerShellCommand.runSendBroadcast(ActivityManagerShellCommand.java:788)
    at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:214)
    at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
    at android.os.ShellCommand.exec(ShellCommand.java:38)
    at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:10429)
    at android.os.Binder.shellCommand(Binder.java:986)
    at android.os.Binder.onTransact(Binder.java:860)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:6049)
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3034)
    at android.os.Binder.execTransactInternal(Binder.java:1220)
    at android.os.Binder.execTransact(Binder.java:1179)
fjp@fMac-19 sensorsw % adb shell am broadcast -a android.intent.action.MOVESENSE --es type get --es path Info --es value '''{}'''
Broadcasting: Intent { act=android.intent.action.MOVESENSE flg=0x400000 (has extras) }
Broadcast completed: result=0

嫌疑犯

  • 我的问题是由于一个旧版本的Android应用程序?我找不到比1.5.1更新的东西。
  • 我试着用adb shell dumpsys activity services | grep android.intent.action在手机上打探一下,得到了大量的结果,然后我开始使用adb shell dumpsys activity services | grep MOVESENSE查找MOVESENSE,但没有找到结果。我在这里很薄,但是不是应该有一个android.intent.action.MOVESENSE在那里呢?
EN

回答 1

Stack Overflow用户

发布于 2022-03-30 12:25:54

经过多次的反复试验,我终于找到了解决办法。

解决方案

我找到了一个具有大量预编译Android应用程序的Bitbucket目录

文件Showcaseapp-debug_adb-bridge-build.apk就是您想要的文件。以下是你所做的工作:

  • 下载Showcaseapp-debug_adb-bridge-build.apk,并将其放在您选择的目录中。
  • 在您的Android设备上,如果您已经安装了Showcase应用程序,请卸载它。
  • 在您的计算机上使用ADB安装应用程序:adb install Showcaseapp-debug_adb-bridge-build.apk
  • 在Android设备上启动应用程序,并连接到Movesense设备。
  • 尝试一个命令,如:
    • 开机:adb shell am broadcast -a android.intent.action.MOVESENSE --es type put --es path Component/Led --es value '''{\"isOn\":true}'''
    • 开关发光二极管:adb shell am broadcast -a android.intent.action.MOVESENSE --es type put --es path Component/Led --es value '''{\"isOn\":false}'''

最后注意事项

在一个完美的世界里,Movesense将使wbcmd能够使用大多数/所有PC中内置的theBLE设备,无论是Windows、Linux还是Mac。或者更完美(这是一个词?),制作一个使用TCP/IP而不是标准的in/out的变体。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71660477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档