使用Android和iOS的java通知 1 周,1 日 Questions & Answers 1357 我想创建一个BLE设备,连接到手机并接收所有通知(短信、来电、电子邮件) 它应该是跨平台的,并且始终保持连接 我该怎么办
# 1 楼答案 Android和iOS在这个问题上有很大的不同 iOS 7-8 在iOS上,你的应用程序无法知道你何时收到短信、电子邮件等。。。因此,在手机端,您无法接收通知,然后通过BLE将其发送到手机 (另外,你也知道iphone对后台运行的应用程序有很大的限制) 唯一的办法就是苹果通知中心服务:Official Doc Human readable explanation 下面是它的工作原理。让外部硬件进入中央模式(例如“主模式”,而不是通常的ppheral模式),然后让ios设备使用“服务解决方案”打开ANCS服务 这样做可能需要配对 然后,您的设备可以连接到此服务(警告,ANCS不是标准的SIGANS1811服务!) 无需应用程序,所有操作都在硬件端完成 安卓4.3-4.4 在android 5.0之前,android设备只能处于中央模式,而不能处于外围模式,因此无法模拟iOS的行为 向BLE硬件发送通知的唯一方法是让外部硬件处于外围模式,然后创建一个专用协议,以便在中央模式下使用手机发送通知。(是的,与苹果相反) 通过扩展NotificationListenerService来监听通知非常简单Example implementation别忘了开枪。设置。操作_通知_侦听器_设置以打开通知访问设置屏幕并授予对此应用的访问权限 现在的问题是:由于android BLE堆栈的不同不稳定性,维护一个BLE连接非常困难,而且在后台时,你几乎无法控制你的服务的寿命,所以保持它的活力也不是一个选项。(啊,不要试图在NotificationListenerService中绑定服务,它不会工作) 所以唯一要做的就是编写一个短的BLE类(在服务之外工作),它将快速启动连接,发送消息send Shutdown 很多安卓手机的配对功能不稳定。因此,理想情况下,外部硬件应该在android上使用“只工作”连接(当他是外设时),在中央设备上使用配对连接(在ios上) 和android中的BLE一样,你需要排队等待所有请求等
# 1 楼答案
Android和iOS在这个问题上有很大的不同
iOS 7-8
在iOS上,你的应用程序无法知道你何时收到短信、电子邮件等。。。因此,在手机端,您无法接收通知,然后通过BLE将其发送到手机
(另外,你也知道iphone对后台运行的应用程序有很大的限制)
唯一的办法就是苹果通知中心服务:Official Doc Human readable explanation
下面是它的工作原理。让外部硬件进入中央模式(例如“主模式”,而不是通常的ppheral模式),然后让ios设备使用“服务解决方案”打开ANCS服务 这样做可能需要配对
然后,您的设备可以连接到此服务(警告,ANCS不是标准的SIGANS1811服务!)
无需应用程序,所有操作都在硬件端完成
安卓4.3-4.4
在android 5.0之前,android设备只能处于中央模式,而不能处于外围模式,因此无法模拟iOS的行为
向BLE硬件发送通知的唯一方法是让外部硬件处于外围模式,然后创建一个专用协议,以便在中央模式下使用手机发送通知。(是的,与苹果相反)
通过扩展NotificationListenerService来监听通知非常简单Example implementation别忘了开枪。设置。操作_通知_侦听器_设置以打开通知访问设置屏幕并授予对此应用的访问权限
现在的问题是:由于android BLE堆栈的不同不稳定性,维护一个BLE连接非常困难,而且在后台时,你几乎无法控制你的服务的寿命,所以保持它的活力也不是一个选项。(啊,不要试图在NotificationListenerService中绑定服务,它不会工作)
所以唯一要做的就是编写一个短的BLE类(在服务之外工作),它将快速启动连接,发送消息send Shutdown
很多安卓手机的配对功能不稳定。因此,理想情况下,外部硬件应该在android上使用“只工作”连接(当他是外设时),在中央设备上使用配对连接(在ios上)
和android中的BLE一样,你需要排队等待所有请求等