问题标签 [ancs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2643 浏览

ios - 我可以使用来自 eBay 的廉价 nRF51822 模块与 iOS 设备通信以获取通知 (ANCS) 吗?

我可以使用来自 eBay 的便宜的 nRF51822 板通过 Apple 通知中心服务 (ANCS) 从 iPhone 获取通知吗?它还具有 ARM 单片机和内置 BLE。是否可以将它与 Arduino IDE 一起使用,如果没有,如何编程?

提前致谢。

0 投票
1 回答
1010 浏览

ios - BLE和ANCS自动连接场景

我开发了一种可穿戴设备,它使用 BLE 技术连接其他顶级 BLE 设备。我也从可穿戴设备方面成功实施了 ANCS。

这里的问题陈述是:
我没有使用 Apple 的 MFI 程序。当我第一次扫描设备时,它会根据服务 ID 被发现。成功连接后,ANCS 建立并请求应用程序中可见的配对请求。

如果可穿戴设备以某种方式断开连接并且用户手动将其打开。设备从外部蓝牙设置屏幕自动连接。这导致了一个问题,我无法从应用程序本身扫描设备,因为它是从外部连接的,因此广告包停止传播。由于我无法扫描手表,因此无法连接它。

我必须手动取消配对,然后设备才会出现在扫描列表中。

有什么方法可以让我知道设备是从我的应用程序内部从外部连接的?

如果是,那么请让我知道,如果不是,那么请为整个场景提出一些替代解决方案,因为我必须一次又一次地取消配对以从应用程序中扫描它。

从过去的 10 天开始,我一直被困在这个问题上。

请提供解决方案。任何帮助表示赞赏。

谢谢

0 投票
0 回答
1355 浏览

ios - iOS 低功耗蓝牙 ANCS 明显“三击而你出局”

我们有一个订阅 ANCS 的 BLE 外设。它还托管我们的应用程序连接到的一些自定义服务。

由于 ANCS,必须在“设置”应用程序中连接到外围设备 (xxx)。因此,我们在应用程序中没有任何设施来启动 BLE 连接。这也使 UseEx 保持清洁,并减少“角落案例”。

这个想法是用户在设置应用程序中连接。然后,如果外围设备超出范围,iOS 将在返回范围后自动重新连接。

然而,客户发现,在说离开房间后,外围设备通常不会重新连接。

我们只能通过将 BLE 外围设备放在距离 iPhone 约 15 米的金属盒内来可靠地重现这一点。通过以适当的速度打开和关闭机箱,我们可以在 10 秒左右的时间内引发一系列失败的 ANCS 连接请求。

以下是一些设备控制台日志,显示了由于信号丢失而导致的第一次连接失败。

...

如果我们继续正确打开和关闭金属​​盒,我们可以连续三次执行相同的“API MISUSE”。

导致以下消息:

...

...

看起来这是一个“三击即出”的算法,然后将外围设备放入某种“灰名单”。时间必须在 11 秒左右的范围内。我们不能放慢我们的审讯速度,否则我们会遇到配对超时的 30 秒密钥交换。

此灰名单意味着 iOS 将不再允许将此外围设备重新连接到 ANCS,除非用户打开设置并手动连接到它。

这意味着 CBCentralManager - retrieveConnectedPeripheralsWithServices: 方法将不会检索外围设备,因为它不再连接。

我们必须添加一个变通方法,现在我们存储之前看到的任何外围设备的 UDID,然后在回调到 didDisconnectPeripheral 时,我们使用 -retrievePeripheralsWithIdentifiers 重新连接:

但是,为了保持 ANCS 连接的连续性,我们还必须在 Info.plist 中添加 bluetooth-central UIBackground 模式,以便在后台收到应用程序的 didDisconnectPeripheral 后重新连接。当然,如果应用程序在没有状态保存和恢复的情况下被卸载,ANCS 连接将再次断开。

为了更好地衡量,我们还在前台使用看门狗定时器来定期检查连接状态。

我们只能很难重现效果,我们的客户似乎可以经常看到它,当然BLE设备可能连接不可靠。

如果 ANCS 在 iOS 中得到更强大的处理,我们可以让我们的应用程序更节能,并以更少的工作量开发它。

使用的设备是 iOS 8.1 和 8.2 上的 iPhone 4S 和 iPhone 6。

问题是:有其他人在 ANCS 中看到过这种行为吗?

0 投票
1 回答
2292 浏览

python - 由于 Python 无法构建节点包

这似乎是一个已解决的帖子,只是为了帮助遇到同样问题的人。

我试图安装 noble(ancs 的依赖)并且遇到了问题

然后尝试将 npm config python 版本更改为 3.4.3,

还是失败了。

但是当更改为python2时,它就起作用了。

当前 npm 配置的 python 版本是

0 投票
1 回答
577 浏览

ios - 接收 iOS 系统(如 SMS)通知

我看到其他人也问过同样的问题,例如iOS 系统警报接收所有警报,但没有得到回答。

我尝试了第二个代码,但它只接收该应用程序的所有警报。因此,如果我在运行此应用程序的设备上收到短信警报,我只会收到以下信息:

所以这只是短信对话框对应用程序的影响,而不是短信通知。

据我所见,iOS 应用程序沙箱中无法接收所有系统通知(例如 Facebook、WhatsApp、Twitter、SMS、呼叫、未接来电等)。获得这些的唯一方法是通过可以请求 ANCS 的 BLE 外围设备。

这个对吗 ?

0 投票
0 回答
167 浏览

ios - 这是一个 ANCS 错误吗?

我正在一个使用 iPhone 的 ANCS 的项目中工作。

如果我的手机也连接到另一个使用 ANCS 的设备(例如:Pebble),我注意到一个奇怪的行为。

我的设备收到垃圾包。我试图注释掉我的代码中请求有关控制点特征的详细信息的部分。在此之后,我仍然收到有关数据源特征的无意义数据。基本上,我收到了 Pebble 要求的部分内容。这是一个废话包的例子:

数据来源:数据:65 05 0F 00 32 30 31 35 30 35 32 36 54 31 34 33 36 31 33

在这里,我可以看到 Pebble 正在询问日期。05 是属性,“0F 00”是长度,“32 30 31 35 30 35 32 36 54 31 34 33 36 31 33”是收到通知的日期。

我不要求任何东西,我仍然收到数据包。这是一个 ANCS 错误吗?

0 投票
0 回答
539 浏览

ios - Pushbullet 如何将所有 iOS 通知发送到 Mac

我正在检查具有 Mac 和 iOS 通信的不同应用程序。我遇到了很酷的应用程序 PushBullet 和 Notifyr。我发现最令人惊奇的事情是向他们在 Mac 中的应用程序显示 iOS 的推送通知。我试图搜索什么可以用来实现这个东西,但没有找到任何东西。

有没有人对此有想法,如何使用 BLE 或任何其他渠道将 iOS 设备中的 iOs 通知共享到 Mac?Apple 是否提供了任何公共 API 或框架来实现这个东西?

0 投票
0 回答
453 浏览

android - 无法从 iOS 蓝牙设置中找到 ANCS Android 设备

我在外围模式下通过 Android 手机(三星 Galaxy S6)宣传 ANCS 服务。我可以从 LightBlue 等 iOS 应用程序中找到该服务。但是我无法从蓝牙搜索设置页面找到我的 Android 手机。我想从 iOS 设备的设置页面与 Android BLE 外设电话配对。可能吗?

0 投票
1 回答
376 浏览

ios - ANCS 是否支持向多个 BLE 设备发送通知?

多台设备与同一部 iPhone 配对,但只有一台收到 ANCS 通知。

0 投票
0 回答
906 浏览

ios - 带有外部 BLE 设备的 iOS 核心蓝牙 ANCS

我正在开发一个使用 CoreBluetooth 与外部 BLE 附件 (cc256x) 交互的 iOS 应用程序。我必须将 iOS 通知从 iOS 设备发送到 BLE 设备。根据 Apple 文档,我正在使用 ANCS(Apple 通知中心服务)。

https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/AppleNotificationCenterServiceSpecification/Introduction/Introduction.html

我从 iOS App 遵循的步骤是:

iOS 设备充当外围设备并宣传 ANCS,如下所示。

服务是广告,基于 cc256x 的外部设备充当中央,能够扫描并连接到外围设备。

当 cc256x 设备尝试订阅新警报/未读警报的通知时,它们会收到以下错误:

错误 - ANS_Decode_Un_Read_Alert_Status_Notification 返回 -1004。

该错误表明远程应用程序已发送错误/损坏的“未读警报状态通知行为”通知。

据我对 iOS 应用程序的理解,我们只需要宣传 ANCS,一旦 BLE 设备订阅了 ANCS 特性,iOS 就会自动发送通知。

我试过这个链接中提到的

iOS 7 ANCS:发现主 ANCS 服务 UUID

但无法在 BLE 外围设备中看到通知。

有什么遗漏吗?请帮助我,因为我无法找到解决方案。