- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的智能手机没有气压计,我想使用通过 USB 或蓝牙连接到我的智能手机的外部气压计。我希望每个已安装的应用程序都可以以标准方式使用此 baromter,但我不知道这是否可能。按照标准方式,我的意思是从 google play 下载的每个需要气压计的应用程序都可以使用我的外部气压计。因此,存在读取测量值并通过 Intent 共享的应用程序的解决方案不让我满意。
添加外部 GPS 更容易,因为有 android.location.LocationManager具有方法的类 addTestProvider所以我可以开发应用程序来创建 TestProvider 并设置由 setTestProviderLocation 从 USB/蓝牙读取的位置方法。问题是 SensorManager不提供 API 来添加模拟传感器。
可以将外部气压计连接到 Android 设备并将测量值共享到所有应用程序。
最佳答案
外部 USB 传感器在插入时需要 Android 支持该设备。然后您需要一根 OTG 电缆来反转 USB 从属/主控。无需进入内核构建等...在您的 android 设备上安装终端应用程序,插入 OTG 和传感器,然后运行 dmesg 以查看是否检测到设备并加载驱动程序。从那里您必须弄清楚 Linux 对您的 USB 传感器的支持,并努力将这种支持纳入 Android 内核。
如果您最终不得不构建一个新内核,您不妨完全切换到一个全新的 ROM。 CyanogenMod 提供了完整的源代码、构建脚本和关于从头开始构建 ROM 的 wiki。一旦安装了新的 ROM zip,您就可以安全地调整内核和安装软件。
Android 内核非常接近支持几乎所有在 Linux 上运行的 Linux 内核,只要您的传感器驱动程序的源代码可用,或者它的预编译二进制文件是可用的。 (也称为专有 blob)
最后,假设您有一个带有 OTG 电缆的设备并且传感器似乎被检测到并且驱动程序已加载,您将需要一些工具或应用程序才能实际使用传感器。如果有可用的 Linux 工具可以执行您想要的操作,请查看是否有它们的预编译 ARM 版本,或者如果源代码可用,您将必须使用 Android NDK 从源代码编译它们。
我为什么要费心解释所有这些?蓝牙在 Android 中总体上非常不可靠。此外,您至少需要 Android 5.1。谷歌最初的蓝牙堆栈是垃圾。 (Bluez 的包装器存在各种问题,它在某些用途上工作正常,但总体上存在稳定性问题)你只需要在非三星设备上使用心率监测器就知道它不会保持连接超过 10秒。三星在早期设备中引入了自己的蓝牙堆栈。我开发了使用心率监测器和心电图阅读器的身份验证应用程序,两者都使用蓝牙。一旦我的 Nexus5 设备升级到 5.1,一切都稳定了。谷歌的蓝牙问题众所周知。仅 Google android 和蓝牙堆栈实现。
除非您需要无线,否则有线总是更好。
您确实有一些替代 USB 选项。
1) 使用通过 USB 连接的 Arduino 或 RPi。不需要特殊的 Linux 驱动程序或内核,但您需要 breakout 设备,它必须连接您的传感器。例如传感器 -> Arduino -> android。如果它是一个 RPi,你将有 4 个 USB 端口和一个完整的 Linux 内核可以使用,但电源将是一个问题,具体取决于你的需要。这是来自应用程序的关于 Arduino 网络共享的精彩教程:http://www.allaboutcircuits.com/projects/communicate-with-your-arduino-through-android/
2) 使用 IOIO OTG 分线单元将您自己的传感器转入其各种输入。您将能够从 Java 访问传感器。他们甚至提供了一个应用程序来测试一切。该装置本身还为任何有线传感器提供电池供电和充电支持。您只需将它们连接起来,将其插入您的安卓 USB 即可。我认为他们即将发布新型号,因为当前型号已停产:https://www.sparkfun.com/news/2069
无论如何,祝你好运。
关于android - 如何将外部传感器连接到 Android 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698202/
如何指示 webpack 排除所有 d3 模块? // does not work externals: { "d3-*": "d3" } 所以如果应用导入了d3-submod
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: What does “outer =>” really mean? 我在哪里可以找到有关信息 trait After
这是一个简单的循环,我正在尝试对性能进行基准测试。 var extremeLoop=function(n){ var time=new Date() var t=0; for(
问题+概述 下面是两个片段,其中包含最初隐藏的 div,然后通过单击 button 和 jQuery 的 .show() 显示。两个 div 都具有由外部样式表应用的 display: grid; 样
我有一个 HTML 页面和一个单独的 .js 文件,该文件包含在带有 的页面中标签。 这是我的 .js 文件: element = document.getElementById("test");
我在 linux 静态库项目中有 3 个文件,我想在两个类方法实现文件中使用的静态字段存在链接问题。我有 class1.h、class1main.cpp 和 class1utils.cpp。 clas
我正在尝试将颜色背景更改为默认背景颜色,当我点击输入框外 我尝试使用“null”或“none”但没有用? window.addEventListener('click', outsideClick);
我正在编写一个应用程序,要求用户在手机上选择各种类型的文件。我使用此代码启动文件选择器 Intent : Intent intent = new Intent(Intent.ACTION_GET_C
在 android 中,不可移动(内部)的外部存储和内部存储有什么区别?我不确定在哪里保存我的数据。我只需要保存一个人可以随时提取的游戏统计数据 谢谢 最佳答案 在许多较新的设备中,将不再有物理区别,
在 C++ 中,假设我们有这个头文件: myglobals.h #ifndef my_globals_h #define my_globals_h int monthsInYear = 12; #en
我正在尝试使用 externs 在 C++ 中连接到 Ada。这两种实现有什么区别? 实现A namespace Ada { extern "C" { int getN
这个问题在这里已经有了答案: Get selected element's outer HTML (30 个答案) 关闭 2 年前。 想象一下我们有这样的东西: Hello World 如果我们这样
假设我在模块的顶部有这个: Public Declare Function getCustomerDetails Lib "CustomerFunctions" () As Long 如果我从 VB6
我目前正在使用这段代码: var wordRandomizer = { run: function (targetElem) { var markup = this.creat
我们正在使用 SVN 试水,并以 Beanstalk 作为主机。我们的设置如下所示: 存储库:模块 模块一 模块二 模块 3 存储库:网站1 自定义网站代码 svn:对模块 1 的外部引用 svn:对
有没有办法在负载均衡器中设置自动外部 IP 分配给像谷歌这样的服务? 我在裸机上运行 Kubernetes。 谢谢 最佳答案 使用 nodePort 类型的服务,它会将您的服务绑定(bind)到所有节
是否有可能在 Controller 之外使用 generateUrl() 方法? 我尝试在带有 $this->get('router') 的自定义存储库类中使用它,但它没有用。 更新 我在这里找到了一
我目前正在尝试通过 Webpack 外部对象外部化 Angular 依赖项来缩短构建时间。到目前为止,我已经为 React 和其他小库实现了这一目标。 如果我只是移动 '@angular/compil
我想创建一个自动应用其他插件的插件(外部插件)。这要求在我称为“应用插件”之前为插件设置构建脚本依赖项。但是似乎我无法在插件中添加buildscript依赖项,或者得到了: 您不能更改处于未解析状态的
我是R包的创建者EnvStats . 有一个我经常使用的函数,叫做 stripChart .我刚开始学习ggplot2 ,并在过去几天里仔细研究了 Hadley 的书、Winston 的书、Stack
我是一名优秀的程序员,十分优秀!