Android 和 iOS 如何扫描蓝牙信标而不出现电池问题?

2024-04-08

如果我想在 Android 或 IOS 中开发自己的 iBeacon 服务,它必须实用。这意味着客户可以使用我的服务而不会出现电池短缺的情况。

我认为即使 iBeacon 技术基于蓝牙低功耗,它仍然可能缺乏电池。这是因为应用程序必须始终运行才能扫描 iBeacon 设备。

据我所知,iOS 对于电池问题有自己的解决方案。当 IOS 应用程序检测到 iBeacon 设备时,它会在后台运行,并且 IOS(而非应用程序)会自行扫描特定的 UUID,而不是附近的所有 UUID。这就是他们节省能源的方式。我对吗?

但对于Android,不提供任何电池问题的解决方案。更重要的是, 当 Android 应用程序检测到 iBeacon 设备时,它会扫描附近的所有 UUID,并处理所有内容,而不是 Android 操作系统。这是正确的吗?

所以在我开始开发自己的服务之前,我担心电池问题。 电池可以吗? 有什么好的解决办法可以分享吗?你们怎么解决这个问题?


The Android iBeacon 库专业版 http://developer.radiusnetworks.com/ibeacon/android/pro/download.html配有自动节电装置当应用程序在后台运行时减慢扫描速度以节省电量 http://developer.radiusnetworks.com/ibeacon/android/pro/battery_manager.html。开源 Android iBeacon 库还允许配置前台和后台蓝牙扫描速率,并提供调用方法来告知库应用程序何时位于前台和后台。

在 iOS 上,电池节省策略是类似的。当前台没有应用程序对 iBeacons 进行测距时,不会持续执行蓝牙扫描。后台扫描的确切频率尚未公布,但我测量过它每 15 分钟发生一次 http://developer.radiusnetworks.com/2014/03/12/ios7-1-background-detection-times.html在装有 iOS 7.1 的 iPhone 4S 上。

扫描特定 UUID 对电池寿命没有影响。在操作系统级别,蓝牙 LE 扫描会查找任何正在进行广告的蓝牙 LE 设备,无论它是 iBeacon 还是具有特定的 UUID。特定 UUID 的过滤器由更高级别的软件处理。

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

Android 和 iOS 如何扫描蓝牙信标而不出现电池问题? 的相关文章

  • 0x0A 和 0x0D 之间的区别

    我正在研究蓝牙 我试图编写代码以在连接时继续监听输入流 我遇到了以下代码片段 int data mmInStream read if data 0x0A else if data 0x0D buffer new byte arr byte
  • 从 iBeacon 接收 BLE 信号到 Bluno(arduino with BLE)

    我想从 iBeacon 到 Bluno 接收 rssi 信号和 UUID Arduino 板具有 BLE 对此有一些疑问 有没有从 BLE 到 BLE 接收 UUID 和 rssi 的解决方案 两个BLE设备可以互相通信吗 我想找一些网站来
  • 如何使 Raspberry Pi 3 可被 iOS 和 CoreBluetooth 发现?

    我有一个 Raspberry Pi 3 我正在尝试使其可供 iOS 设备发现 我跑了sudo hciconfig hci0 piscan让它被发现 我可以用我的 iMac 看到它 在 iOS 上 我使用 CoreBluetooth 并扫描附
  • 蓝牙连接;无法正确发送字符串

    当我需要将字符串从服务器蓝牙套接字发送到客户端蓝牙套接字时 我的程序遇到了麻烦 只要我一次只发送一个字符串 例如聊天 一切都可以正常工作 但是如果我需要在短时间内编写更多字符串 以交换信息 则字符串将不会与客户端代码分离 例如 如果我发送
  • 蓝牙 LE:地址类型

    我正在研究 iBeacon 技术 但我找不到有关地址类型的特定问题的任何答案 我找到了解释地址类型的文档 蓝牙规范 但我似乎找不到如何在两种类型 公共和随机 之间进行选择 这是我发现它的一个例子 它是由 Raspberry PI 上的 iB
  • 通过 iBeacon 监控和测距与 CoreBluetooth scanForPeripheralsWithServices 检测信标

    对于 iOS 对想要扫描 BLE 信标 外设的应用程序施加的限制 存在很多困惑 在阅读了几个博客和 Stack Overflow 答案后 我想看看我是否正确理解了所有问题 如果有什么理解错误或者遗漏的地方请指正 我仅指 iOS 7 及更高版
  • 使用 iPhone 控制蓝牙音频设备

    我正在寻找为 iPhone 编写应用程序 它将能够控制汽车中的收音机和 CD 播放器 收音机和播放器具有可用的蓝牙连接 我开始这个问题是为了获得这个地方所需的所有信息 我有几个问题 但如果您发现任何我没有要求的对我开始开发此应用程序不重要的
  • 判断串口是普通COM还是SPP

    我正在寻找一种方法来确定 COM 是标准 COM 还是 SPP COM 也称为 COM 设备的电缆替换蓝牙适配器 我有一个可以在 USB COM gt USB 和蓝牙下工作的设备 并且蓝牙接口可以与 SPP 一起工作 我目前正在使用Syst
  • Android蓝牙java.io.IOException:bt套接字已关闭,读取返回:-1

    我正在尝试编写一个代码 仅连接到运行 Android 5 0 KitKat 的设备上的 目前 唯一配对的设备 无论我尝试了多少方法 我仍然会收到此错误 这是我尝试过的最后一个代码 它似乎完成了我看到人们报告为成功的所有事情 有人能指出我做错
  • 如何以编程方式查找Android手机的电池充电时间?

    我想知道我们如何找到 Android 设备将电池充满电需要多长时间 例如 如果我的电池电量为 0 则充满电 即 100 需要多长时间 如果我的设备电量为 70 则相同 因此如果我现在连接充电器 则需要多长时间才能充满我的设备 这对我有用 p
  • 我安排一个计时器使用 readRSSI 函数读取 RSSI,但是当我的应用程序进入后台时计时器停止

    我安排一个计时器使用 readRSSI 函数读取 RSSI 但是当我的应用程序进入后台时计时器停止 也许有一个好方法可以在应用程序进入后台时从外围设备的通知中获取 RSSI 值 但我不知道该怎么办 有人可以帮助我吗 有人有更好的方法吗 我也
  • 如何去掉android状态栏的电池图标?

    我通过去掉背景图像来删除 Android 中显示网络 电池和时间信息的状态栏 但图标仍然存在 我也想知道如何删除电池图标 不是用于应用程序 而是用于框架开发 提前致谢 你试过打电话吗 getWindow setFlags WindowMan
  • 在没有 BluetoothManagerCallback 的情况下调用 getBluetoothService

    我正进入 状态getBluetoothService called with no BluetoothManagerCallback在我的 Android 应用程序中经常出现错误 我不知道是什么原因导致这个或任何有关蓝牙管理器回调的事情 谁
  • 接收广播意图时出错 { act=android.bluetooth.device.action.FOUND flg=0x10}

    我搜索了一下 没有发现任何相似的东西 我正在 Android 中使用蓝牙开发两个设备之间的连接 在 ACTION FOUND 方法上 当我尝试使设备信息显示在 listView 上时 我在 logcat 上收到该错误 德萨菲奥活动 公共类
  • 如何知道特定蓝牙设备何时连接?

    我有一个在后台运行的应用程序 需要知道何时连接特定的蓝牙设备 假设我希望我的应用程序在后台运行 并在您的设备连接到汽车蓝牙时执行某些操作 谢谢 下面的代码给出了它所连接的设备 BluetoothDevice device intent ge
  • iBeacon 发射机的主要和次要最大值是多少?

    问题 1 iBeacon发射机的major和minor的最大值是多少 2 我只使用一个UUID startRangingBeaconsInRegion检测主要值和次要值是否有限制 Major 和 Minor 都是 16 位 所以最大的主要
  • Android 蓝牙后台监听器

    我正在开发一个带有蓝牙聊天功能的Android应用程序 我已经成功地用两部手机实现了蓝牙聊天 但我的问题是 如果我从聊天活动更改到下一个活动 连接就会丢失 然后我无法从第二个活动发送消息 我怎样才能保持我的连接 也就是说 我想通过我的应用程
  • 了解 UUID 的长形式和短形式

    我正在尝试学习一些android中的蓝牙编程我已经能够制作一个基本程序 该程序可以发现并连接到具有内置蓝牙功能的开发板 目前只有一个 我希望能够使用 RFCOMM 向开发板发送命令并接收消息有人告诉我 如果不知道主板和手机的 UUID 我可
  • 流套接字访问被拒绝 Windows Phone 8.1 蓝牙

    我尝试使用 StreamSocket Class 将蓝牙设备与我的 Windows Phone 8 1 连接 现在每次我调用 socket CallAsync HostName RemoteServiceName 时都会收到 AccessD
  • 如何在 Debian 上连接 pybluez RFCOMM 服务器套接字?

    我在 python 中使用 pybluez 框架编写了这些代码片段 from bluetooth import server sock BluetoothSocket RFCOMM server sock bind PORT ANY ser

随机推荐