当前位置: 首页 > 知识库问答 >
问题:

iOS上的自定义可扩展广告

束阳旭
2023-03-14

我希望在iOS上创建一个BLE广告,我可以在字节级别上控制广告。

一个用例是模仿iBeacon广告。什么是iBeacon蓝牙配置文件(我想做广告,而我的应用程序是在后台,这就是为什么我不使用核心位置)

我看不到用核心蓝牙应用编程接口做到这一点的方法。这样做正确吗?是否有使用私有API或越狱的替代方案?

共有3个答案

谷梁嘉悦
2023-03-14

我看不到用核心蓝牙应用编程接口做到这一点的方法。这样做正确吗?

由于您必须设置特定于制造商的数据才能实现这一点,如果没有任何变化,您将遇到与我完全相同的问题。解释如下:

CoreBluetooth中不允许使用播发密钥“制造商数据”

这是不可能的。

巩衡
2023-03-14

我对iOS的经验是,如果它是API中没有公开的东西,除了越狱之外,别无选择。对于蓝牙低能量,API处于GAP/GATT级别,而在较低级别(如果有的话)很少暴露。广告是一种LL(链接层)功能。

为了说明访问是如何受到限制的:当扫描BLE设备时,您将无法访问广告客户的MAC地址iOS。在Android你有它。

欧阳勇
2023-03-14

正如其他人已经指出的,iOS上没有允许您这样做的API。

您可以作为iBeacon做广告,但只有当您的应用处于前台时。当在后台时,广告被删除,因此不能再被发现(除了其他iOS设备显式扫描该服务UUID)。另请参阅这里的留档:核心蓝牙后台处理

如果你想分享你的用例和你想要实现的东西,也许有其他的方法来实现它。

 类似资料:
  • 目前 Mars 支持自定义 xlog 的加密部分和长短连协议加解包部分。需要强调的是想要自定义这些扩展,需要在本地编译 Mars 才可以,编译方法见 Mars Android 接入指南 和 Mars iOS/OS X 接入指南 中的编译部分。切记,在自定义实现时,可以增加函数,但是不能删除头文件中已有的函数,也不能修改头文件中的函数原型。 自定义 xlog 加密 xlog 的具体实现可以参考微信终

  • 当我们在开发某些东西时,经常会需要我们自己的 error 类来反映在我们的任务中可能出错的特定任务。对于网络操作中的 error,我们需要 HttpError,对于数据库操作中的 error,我们需要 DbError,对于搜索操作中的 error,我们需要 NotFoundError,等等。 我们自定义的 error 应该支持基本的 error 的属性,例如 message,name,并且最好还有

  • 通过Envoy架构很容易扩展网络过滤器和HTTP过滤器。 有关如何添加网络过滤器和构建库并建立依赖关系的示例,请参见envoy-filter-example。 返回

  • 用户自定义扩展是用户自己创建的 JavaScript 文件,对 Selenium IDE 现有的功能进行定制以及功能扩展。通常这种定制和扩展是以自定义命令的形式来体现的,当然也不仅限于命令。 这里可以找到很多有用的扩展。 注意:这部分信息已经过时,我们将很快修改。 也许最受欢迎的 Selenium IDE 扩展就是流程控制,流程控制扩展将提供 while 循环和条件判断。这个扩展是 goto_se

  • 问题内容: 我正在阅读另一个SO问题,即Swift do-try-catch语法。在他的回答中, rickster 为OP的自定义类创建了扩展。 Konrad77 评论说,这是“保持代码整洁的好方法。” 我尊重他们的知识,这使我相信我在自己的代码中遗漏了一点。 除了为我创建的类创建扩展之外,还有其他好处(除了整洁)还是原因?我可以将相同的功能直接放入类中。如果我是唯一使用该类的人,或者其他人将使用

  • 我是Quarkus新手,我编写了一个提供rest API的扩展,我们称之为。 其思想是,扩展将提供应用程序所需的rest资源,应用程序提供业务逻辑。 因此,我创建了一个Kwkus项目,该项目使用该扩展并提供了一个bean,该bean使用业务逻辑实现。 但是,当我启动应用程序时,不会创建endpoint,当我调用它时,它会返回。 问题是:如何使扩展中定义的rest资源对使用它的应用程序可见?