- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我一直在尝试设置一个应用程序,使设备既可以扫描外围设备,又可以宣传为外围设备。目标是当两个设备通过蓝牙发现彼此靠近时在后台被唤醒。从 Apple 文档来看,您似乎应该能够在后台运行 BLE(启用蓝牙中央和蓝牙外设后台模式),并且我的应用程序在一台设备位于前台时工作。首先,我像这样宣传数据:
NSDictionary *advertisingData = @{CBAdvertisementDataLocalNameKey:@"my-peripheral",
CBAdvertisementDataServiceUUIDsKey:@[[CBUUID UUIDWithString:identifier]]};
// Start advertising over BLE
[peripheralManager startAdvertising:advertisingData];
然后我将设备设置为扫描数据:
NSArray *services = @[[CBUUID UUIDWithString:identifier]];
[centralManager scanForPeripheralsWithServices:services options:nil];
但是,当两者都进入后台时(设备必须被锁定),蓝牙无法发现和
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
永远不会在任一设备上调用。我怎样才能解决这个问题?谢谢
最佳答案
恐怕您正在尝试做的事情不会奏效。我试图实现同样的目标。
问题是前景和背景扫描的不同。当您在前台扫描设备时,您可以扫描任何东西。在后台,您必须指定您正在扫描的实际服务 UUID。好的,这实际上不是问题,因为您知道要查找的 UUID。
周边:作为外围设备的广播在前台和后台的工作方式又有所不同。在前台,它像任何普通的 BT 外围设备一样工作。在后台,它的工作空间非常有限,所以你的外围设备 UUID 被隐藏起来而不是广播。只有当中央设备(前台的 iPhone)请求它的信息时,它才会唤醒您的应用程序并显示它的 UUID。
所以两者相互抵消。由于您的后台扫描只能扫描具有特定 UUID 的设备,而您的后台外围设备无法公布其 UUID,因此它们无法看到对方。
您的 1 个设备(外围设备或中央设备)必须在前台才能工作。
这已在 Apple 蓝牙邮件列表中讨论过多次。
关于ios - Core Bluetooth 在后台广告和扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427230/
Bluetooth Low Energy 中计步的服务、特征值 (UUID) 是什么?蓝牙文档的相应页面未列出任何步骤。如何计算步数?步数设备是否使用运行速度和节奏服务?谢谢。 最佳答案 某些设备确实
我有 2 个 Raspberry Pi,运行 Raspbian,是最新的。每个 Pi 都有一个蓝牙 USB 加密狗。我可以使用 this. 让它们通过 RFCOMM 进行通信 现在,我想在蓝牙物理链路
在低功耗蓝牙中,一个主设备可以连接的最大从设备数量是多少?主设备可以连接的最大从设备数量是多少? Bluetooth Low Energy 有 40 个 channel ,但为什么它们只使用 3 个
我正在尝试关闭蓝牙服务,但 Bluecove 在连接关闭方法 ( https://code.google.com/p/bluecove/issues/detail?id=90 ) 上有错误,我正在尝试
我想开发像蓝牙 LE 外围设备这样的应用程序,它停止在与蓝牙 LE 中央设备连接时做广告,并限制与多个蓝牙 LE 中央设备连接的蓝牙 LE 外围设备。 一个蓝牙 LE 外围设备一次只能与一个蓝牙 LE
Eclipse 一直要我定义一个 startActivity 方法,但我不知道该在该方法中放置什么。我已经在我的 androidmanifest.xml 中启用了蓝牙。 我在下面提供了我的代码的摘录:
我想基于 BlueZ 构建一个 c 文件,但我的系统中似乎没有 bluetooth.h 文件。 fatal error: bluetooth/bluetooth.h: No such file or
我正在使用运行 jb 的 root 三星 galaxy nexus 手机,由于某种原因,我没有从蓝牙连接服务接收到任何广播 Intent 。您将在下面找到我的接收器 list 和广播接收器代码。任何提
嗨,在下面的代码中,已经打开了蓝牙电话,但它仍然要求我打开下面代码中的弹出窗口。。谁能帮帮我,我哪里做错了。。允许没有必要问已经蓝牙是
有没有人在调用 bluetoothDeive.createBond() 时遇到与以下错误消息相同的问题? android 4.4 api的方法? java.lang.SecurityException
我正在寻找有关 JSR-82 的帮助。我找了很久,甚至还找了大学的项目主管来帮忙,但到目前为止,我还是没有运气。 我的问题... 我有一个项目,我只需要扫描蓝牙设备 我还无法扫描我的蓝牙设备。我在 C
我正在基于著名的 BluetoothChat 示例开发具有蓝牙功能的应用程序。基本上,使用此应用程序,客户端可以向服务器发送一些数据包。 我已经使用两部 Xperia 智能手机(Xperia X8 和
我正在处理 Java 和 BlueCove 以找到蓝牙设备。 我创建了一个 Maven 项目并添加了 BlueCove 依赖项: net.sf.bluecove bluecove
首先,我上次尝试将 c 程序编译为 linux-arm 架构时遇到了问题,以便稍后在 android 应用程序中使用它。我成功地这样做了,稍后我会写一篇关于如何使用 NDK 独立工具链的文章。 现在我
作为我的类(class)项目之一,我想通过蓝牙耳机或任何此类蓝牙设备按下它们上的可用按钮来启动/触发我自己的 android 应用程序。我将按下蓝牙耳机上的任何特定按钮,我的应用程序应该能够检测到该按
我的项目是使用 Micro:bit 微处理器创建一个交互式程序我正在构建一个游戏,它使用钻机作为 Controller 读取旋转方向和速度作为控制输入 但是我的导师也说在游戏运行的同时给电路板供电会很
我对 Android 编程完全陌生,从技术上讲,这是我在 Android Studio 上工作的第一个大项目。我正在尝试创建一个 android 应用程序,它通过蓝牙连接到我的 Arduino 设备并
我了解蓝牙配置文件包含其他配置文件和协议(protocol)。我不明白蓝牙设备之间究竟是如何交互的。例如,如果您使用任何实现 A2DP 配置文件的附件并将其连接到 iPad,那么 iPad 会将所有音
我想检查设备上是否启用了蓝牙(以便应用程序可以在没有用户交互的情况下使用它)。有没有办法做到这一点?我也可以分别检查蓝牙和低功耗蓝牙吗? 最佳答案 我使用 Radio 完成了此操作类(class)。
我是开发带有蓝牙连接到外围设备的移动应用程序的新手。我搜索了GATT是用于蓝牙LE通信的相关配置文件,但是我们的客户建议我们使用UART服务。现在我很困惑 1.这两件事是如何关联的 2.我们是否必须选
我是一名优秀的程序员,十分优秀!