Android 模拟器上的低功耗蓝牙

2024-02-27

我研究了关于蓝牙低功耗 http://developer.android.com/guide/topics/connectivity/bluetooth-le.html.

但我没有支持 BLE 设备进行测试。

因此,我想问:

Android模拟器支持BLE功能进行测试吗?

我尝试使用以下代码Android 模拟器 4.3 (x86) 和 Android 模拟器 4.4 (ARM):

// Use this check to determine whether BLE is supported on the device. Then
// you can selectively disable BLE-related features.
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
   Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show();
   finish();
}

And it 始终显示“ble_not_supported”.

另一个问题是

哪个模拟器或工具支持 Android BLE?

我真的很想在模拟器上测试 BLE 功能。


看来你可以,在 VirtualBox 中使用 Android 并使用支持蓝牙 LE 的 PC 适配器(在亚马逊上售价约为 18 美元)。这是克里斯·拉尔森的教程 http://chrislarson.me/blog/emulate-android-and-bluetooth-le-hardware.html(复制到此处以保持在线状态):

Android 模拟器非常适合开发蓝牙 LE 应用程序。 诀窍是让 Android 模拟器识别 BluetoothLE 适配器。

你需要什么:

  • 来自 android-x86.org 的 Androidx86 iso 我使用了 4.4 候选版本
  • 虚拟机软件:我用的是Oracle VirtualBox
  • 蓝牙 LE USB 适配器:我使用了 Cirago 蓝牙 4.0 USB 迷你适配器 (BTA8000)(附属链接)或 Cirago 蓝牙 4.0 USB 迷你 适配器 (BTA8000)(非附属链接)
  • 安装Android SDK进行调试
  • 安装VirtualBox
  • 下载Androidx86
  • 打开 VirtualBox 并创建一台新机器。将类型设置为 linux/other(32bit)
  • 将虚拟机的内存和硬盘空间设置为您需要的任何值(但至少是 Android 的最低规格)。
  • 当询问操作系统映像时,选择您从 Androidx86.org 下载的 Androidx86 映像
  • 虚拟机启动后,选择安装Android。
  • 安装完成后,关闭Android虚拟机并卸载iso镜像
  • 插入蓝牙 USB 适配器并将其添加到 Android 虚拟机的设置中
  • 启动 Android 虚拟机并浏览启动屏幕以配置 Android 以供使用
  • 在 Android VM 中,转到设置并启用 BluetoothLE(如果失败,请重新启动 VM 并尝试再次启用)

以下是一些其他链接,或多或少描述了相同的方法,以及您可能感兴趣的其他一些工具:

  • http://technoga.wordpress.com/2013/05/06/debug-a-bluetooth-app-with-android-emulator-on-pc/ http://technoga.wordpress.com/2013/05/06/debug-a-bluetooth-app-with-android-emulator-on-pc/
  • http://niro-offonatangent.blogspot.fr/2011/06/bluetooth-support-on-android-emulator.html http://niro-offonatangent.blogspot.fr/2011/06/bluetooth-support-on-android-emulator.html
  • http://referenceforu.blogspot.fr/2013/08/testing-bluetooth-in-android-emulator.html http://referenceforu.blogspot.fr/2013/08/testing-bluetooth-in-android-emulator.html
  • https://stackoverflow.com/a/2614840/1121352 https://stackoverflow.com/a/2614840/1121352
  • https://github.com/heng81/Android-蓝牙-模拟器 https://github.com/cheng81/Android-Bluetooth-Simulator
  • 一组用于在 Android 上开发蓝牙 LE 应用程序的开源工具:https://github.com/grundid/bletools https://github.com/grundid/bletools and http://blog.opendatalab.de/hack/2013/11/15/bluetooth-low-energy-tools-library-for-android/ http://blog.opendatalab.de/hack/2013/11/15/bluetooth-low-energy-tools-library-for-android/

如果你希望谷歌解决这个问题,你可以给这个帖子加注星标,让它更加明显(只要有足够的选票,谷歌将在几年内解决这个问题,就像他们处理音频问题一样......):

https://code.google.com/p/android/issues/detail?id=56608 https://code.google.com/p/android/issues/detail?id=56608

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 模拟器上的低功耗蓝牙 的相关文章

  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 如何改变android中menuItem的背景颜色?

    我正在以编程方式将菜单项添加到菜单中 我想在选择特定项目时添加背景颜色 如何为 menuItem 添加背景 您的回答将不胜感激 虽然其他答案提供了更改样式 这会影响all菜单项 据我了解 需要更改一个菜单项 我建议你使用android ac
  • Android studio 在日志猫中“清除全部”,更改日志级别过滤器时日志仍然会回来

    在 LogCat 中 当我单击 全部清除 按钮时 它似乎清除了所有日志 但是 如果我更改日志级别并返回到之前的日志级别 则所有日志都会返回 例如 我正在查看 Verbose 我选择 全部清除 日志清除 我切换到 调试 我切换回 详细 现在所
  • 如何编辑 gradle 依赖项

    我正在开发一个 android 项目 该项目在我的 gradle 文件中使用以下依赖项 compile com mapzen on the road 1 1 1 我想编辑其中一个文件 以添加一些缺少的功能并为该项目做出贡献 如何下载该项目并
  • 在 Android 中将应用程序上下文保存到静态变量是否安全?

    我知道在 Android 上使用静态变量是相当危险的 特别是当您将它们引用到活动时 但是 如果我有一个扩展 Application 的类 我们称此类为 App 引用此类的实例是否安全 如果是这样 任何其他类对应用程序上下文进行任何类型的引用
  • Android SDK 中可用的所有“android.intent.action”操作的详尽列表是什么?

    大家好 我想知道标准 Android SDK 中定义的所有 Intent 操作是否有详尽的参考 我正在考虑完整的 android intent action someaction 名称 而不是 Intent 类中定义的方便别名操作的限制列表
  • layout.xml 的用途是什么?

    人们为什么使用layout xml在他们的resources like
  • 如何在照片删除后刷新 Android 的 MediaStore

    问题 如何使媒体存储刷新其已删除文件的条目 从外部存储中删除代码中的照片后 我仍然在图库中看到已删除照片的插槽 空白照片 画廊似乎反映了媒体存储 并且在媒体存储中找到了已删除的照片 直到手机重新启动或通常 直到重新扫描媒体为止 尝试扫描已删
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • Flutter / FireStore:如何在 Flutter 中显示 Firestore 中的图像?

    我想将我在应用程序中使用的一些图像放入 Firestore 并从那里显示它们 而不是将它们作为资产捆绑在我的应用程序中 为了做到这一点 我想出了以下解决方案 对于我想要显示图像的项目 我创建了一个 Firebase 文档 其中有一个字段存储
  • 如何检测 Google Play 上是否有我的应用程序的更新? [复制]

    这个问题在这里已经有答案了 有没有办法以编程方式检查 Google Play 上我的应用程序是否有更新 以便通知用户 我知道 android google play 有自动通知 但我想使用我自己的通知 弹出消息来更新可用性 有点像 Vibe
  • onTouchEvent()中如何区分移动和点击?

    在我的应用程序中 我需要处理移动和单击事件 一次点击是由一个 ACTION DOWN 操作 多个 ACTION MOVE 操作和一个 ACTION UP 操作组成的序列 理论上 如果您收到 ACTION DOWN 事件 然后收到 ACTIO
  • 模拟器:进程已完成,退出代码为 134(被信号 6:SIGABRT 中断)

    我最近刚刚开始在 Mac 上下载 Android Studio 版本 3 0 1 但收到以下错误 模拟器 进程已完成 退出代码为 134 被信号 6 SIGABRT 中断 我按照 Android Studio 教程操作并能够运行模拟器 但在
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • Google Android Drive api 在已安装版本上登录失败

    我开发了一个使用 GoogleDrive api 的 Android 应用程序 当处于调试状态或运行调试版本时 应用程序 工作正常 并正确验证附加的谷歌帐户 等 当我构建发行版本时 使用我的签名密钥 并且 安装apk文件 当我运行时 Goo
  • Jetpack Compose 部分或开放侧边框

    我正在尝试绘制部分或一侧开放的矩形圆形边框以实现此效果 玩了一下之后我得到了这个 这是通过以下方式完成的 RoundedCornerShape topStartPercent 50 bottomStartPercent 50 start R
  • 基于BluetoothChat示例通过蓝牙套接字发送文件

    大家好 根据我之前问的一个问题 我已经能够将文件转换为其他字节数组 以便使用以下写入方法 public void sendFile Log d TAG sending data InputStream inputStream null Ur
  • Android:获取最新意图

    如何获取发送到活动的最后一个意图 的文档onNewIntent 建议我需要做这样的事情 class MyActivity public void onNewIntent Intent intent setIntent intent reac
  • 在 Android 中更新到 API 26 时,清单合并失败并出现多个错误

    我尝试使用 API 26 更新我的 gradle 安卓工作室2 3 3 但我在编译项目时遇到以下错误 这是我收到的错误的屏幕截图 应用级别build gradle Top level build file where you can add

随机推荐

  • Symbian 的不同版本

    我必须在 Symbian 中构建一个项目 我有一些困惑 并有一些与 Symbian 版本相关的问题 有什么区别Symbian 3 S60 3rd edition and S60 5th edition 从编码角度来看 与 Symbian 3
  • 为同一轴上的抽动设置不同的颜色

    是否可以在同一轴上使用不同颜色或样式的抽动 tics 0 1 1 5 2我想要0和2有色red or bold 非常适合multiplots其中有关于相同测量值的图 并且您希望在不同的图中标记 y 或 x 范围 但又不会使其过载太多 现在对
  • 只比较时间,不比较日期?

    我需要编写一个方法来检查是否Time now位于商店的营业时间和打烊时间之间 营业时间和营业时间被保存为 Time 对象 但我无法直接比较它 因为商店将营业时间保存在2012 2 2所以开放时间大概是这样的 2012 02 02 02 30
  • Passport.js 中的本地和 Google 策略:序列化用户时出现问题

    我一直试图理解为什么即使身份验证本身正在工作 我也无法让用户在经过身份验证后保持登录状态 我什至在这里发布了一个问题 Passport js 本地策略未进行身份验证 https stackoverflow com questions 515
  • Google 服务的 Android 版本冲突

    我已经为此搜索了很多解决方案 但没有一个适合我的具体情况 我在 Gradle Sync 上收到此错误 错误 任务 app processDebugGoogleServices 执行失败 请通过更新 google services 插件的版本
  • 如何直观地显示 java ResultSet?

    我正在寻找一种在屏幕上显示 java sql ResultSet 的方法 最好内置于java或swing中 如果这两个都没有一个简单的好方法 我会考虑 spring How 循环 ResultSet 的结果并将其放入 TableModel
  • 如何在 Google 电子表格中添加标题

    我在用gdata spreadsheet 3 0jar 用于在 Google 电子表格中输入数据 我在用 new ListEntry getCustomElements setValueLocal Header Name Value 但我不
  • 有没有一种简单的方法来扩展现有的激活函数?我的自定义 softmax 函数返回: 操作具有“无”梯度

    我想通过仅使用向量中的前 k 个值来实现使 softmax 更快的尝试 为此 我尝试为张量流实现一个自定义函数以在模型中使用 def softmax top k logits k 10 values indices tf nn top k
  • Angular 2 组件@Input 不起作用

    我一直试图将属性值传递到我的组件中 从我读到的一切看起来都是正确的 但它仍然不起作用 我的测试值以空值输出到屏幕和控制台 这是我的测试组件 import Component Input from angular2 angular2 Comp
  • 如何检查字符串是否是全语法?

    我想创建一个函数 它接受一个字符串作为输入 并检查该字符串是否是全语法 全语法是包含字母表中每个字母的一段文本 我编写了以下代码 该代码有效 但我正在寻找一种替代方法 希望是一种简短的方法 import string def is pang
  • 从 Python 中的 code.interact() 恢复代码执行

    在使用调试时打开交互式控制台后 code interact local locals 我怎样才能恢复代码执行 我已经检查了 代码 模块和搜索堆栈溢出的文档 但找不到任何内容 这与退出任何 Python 解释器会话的方式相同 发送文件结束字符
  • 电话号码格式应该是国际格式,iPhone中是否有用于电话号码验证的正则表达式

    电话号码应该是国际电话号码 用户必须输入带有国家 地区代码的完整电话号码 为此 我需要一个正则表达式来格式化电话号码 对于真正的正则表达式测试使用正则表达式套件精简版 http regexkit sourceforge net RegexK
  • 是否可以在 _LoginPartial.cshtml 中使用 @model ?

    我需要从我的数据库获取一些数据 LoginPartial cshtml 是否可以使用 model in LoginPartial cshtml 或者说它是如何完成的 就在 using WebApp Services然后直接从服务中检索数据
  • OpenCL 编译器预处理定义?

    我正在 Snow Leopard 上开发 OpenCL 代码 并且了解 OpenCL 即时编译是由 Clang LLVM 完成的 是否使用了 C 预处理器 有没有办法使用编译器设置预处理定义 存在哪些定义 我希望代码知道它是为 CPU 还是
  • Java 8 列表到嵌套映射

    我有一个班级名单A like class A private Integer keyA private Integer keyB private String text 我要转让aList嵌套Map映射于keyA and keyB 所以我创
  • 正则表达式的金钱

    I have asp TextBox保持货币价值 即 1000 1000 0 和 1000 00 由于俄罗斯标准 逗号是分隔符 What ValidationExpression我要使用适当的asp RegularExpressionVal
  • 如何指定 RTL 特定的可绘制对象

    我有几张从右到左看起来不同的图像 是否可以创建 rtl 特定的可绘制目录或文件名的一些 rtl 后缀以自动加载相关图像 看起来像 ldrtl 后修复 从 17 级添加 仅适用于布局目录 现在回答这个问题已经很晚了 但我想分享一个我刚刚发现的
  • 有人用 VS2010 RTM 编译 OverviewMargin 吗?

    由于我严重上瘾岩石卷轴 http www hanselman com blog IntroducingRockScroll aspx 我正在寻找一个替代品 https stackoverflow com questions 2672277
  • 让Java文件传输更高效

    我有两台无线计算机连接到 N 个无线路由器 每台 PC 的连接速度都在 108 150Mbps 之间 理论上 在绝对最佳的条件下 我应该能够以 13 5MB s 到 18 75MB s 的速度传输 第一台计算机 正在发送 使用非常快的 SS
  • Android 模拟器上的低功耗蓝牙

    我研究了关于蓝牙低功耗 http developer android com guide topics connectivity bluetooth le html 但我没有支持 BLE 设备进行测试 因此 我想问 Android模拟器支持