问题标签 [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.
ios - 我可以使用来自 eBay 的廉价 nRF51822 模块与 iOS 设备通信以获取通知 (ANCS) 吗?
我可以使用来自 eBay 的便宜的 nRF51822 板通过 Apple 通知中心服务 (ANCS) 从 iPhone 获取通知吗?它还具有 ARM 单片机和内置 BLE。是否可以将它与 Arduino IDE 一起使用,如果没有,如何编程?
提前致谢。
ios - BLE和ANCS自动连接场景
我开发了一种可穿戴设备,它使用 BLE 技术连接其他顶级 BLE 设备。我也从可穿戴设备方面成功实施了 ANCS。
这里的问题陈述是:
我没有使用 Apple 的 MFI 程序。当我第一次扫描设备时,它会根据服务 ID 被发现。成功连接后,ANCS 建立并请求应用程序中可见的配对请求。
如果可穿戴设备以某种方式断开连接并且用户手动将其打开。设备从外部蓝牙设置屏幕自动连接。这导致了一个问题,我无法从应用程序本身扫描设备,因为它是从外部连接的,因此广告包停止传播。由于我无法扫描手表,因此无法连接它。
我必须手动取消配对,然后设备才会出现在扫描列表中。
有什么方法可以让我知道设备是从我的应用程序内部从外部连接的?
如果是,那么请让我知道,如果不是,那么请为整个场景提出一些替代解决方案,因为我必须一次又一次地取消配对以从应用程序中扫描它。
从过去的 10 天开始,我一直被困在这个问题上。
请提供解决方案。任何帮助表示赞赏。
谢谢
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 中看到过这种行为吗?
python - 由于 Python 无法构建节点包
这似乎是一个已解决的帖子,只是为了帮助遇到同样问题的人。
我试图安装 noble(ancs 的依赖)并且遇到了问题
然后尝试将 npm config python 版本更改为 3.4.3,
还是失败了。
但是当更改为python2时,它就起作用了。
当前 npm 配置的 python 版本是
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 错误吗?
ios - Pushbullet 如何将所有 iOS 通知发送到 Mac
我正在检查具有 Mac 和 iOS 通信的不同应用程序。我遇到了很酷的应用程序 PushBullet 和 Notifyr。我发现最令人惊奇的事情是向他们在 Mac 中的应用程序显示 iOS 的推送通知。我试图搜索什么可以用来实现这个东西,但没有找到任何东西。
有没有人对此有想法,如何使用 BLE 或任何其他渠道将 iOS 设备中的 iOs 通知共享到 Mac?Apple 是否提供了任何公共 API 或框架来实现这个东西?
android - 无法从 iOS 蓝牙设置中找到 ANCS Android 设备
我在外围模式下通过 Android 手机(三星 Galaxy S6)宣传 ANCS 服务。我可以从 LightBlue 等 iOS 应用程序中找到该服务。但是我无法从蓝牙搜索设置页面找到我的 Android 手机。我想从 iOS 设备的设置页面与 Android BLE 外设电话配对。可能吗?
ios - ANCS 是否支持向多个 BLE 设备发送通知?
多台设备与同一部 iPhone 配对,但只有一台收到 ANCS 通知。
ios - 带有外部 BLE 设备的 iOS 核心蓝牙 ANCS
我正在开发一个使用 CoreBluetooth 与外部 BLE 附件 (cc256x) 交互的 iOS 应用程序。我必须将 iOS 通知从 iOS 设备发送到 BLE 设备。根据 Apple 文档,我正在使用 ANCS(Apple 通知中心服务)。
我从 iOS App 遵循的步骤是:
iOS 设备充当外围设备并宣传 ANCS,如下所示。
服务是广告,基于 cc256x 的外部设备充当中央,能够扫描并连接到外围设备。
当 cc256x 设备尝试订阅新警报/未读警报的通知时,它们会收到以下错误:
错误 - ANS_Decode_Un_Read_Alert_Status_Notification 返回 -1004。
该错误表明远程应用程序已发送错误/损坏的“未读警报状态通知行为”通知。
据我对 iOS 应用程序的理解,我们只需要宣传 ANCS,一旦 BLE 设备订阅了 ANCS 特性,iOS 就会自动发送通知。
我试过这个链接中提到的
但无法在 BLE 外围设备中看到通知。
有什么遗漏吗?请帮助我,因为我无法找到解决方案。