附近连接和前台/后台服务

4
这更像是一个一般性的问题,但我们可以在服务中使用 Nearby Connections API 的程度有多大?
我注意到即使应用程序失去焦点,发现和配对仍然可以工作,因此是否可能将整个连接客户端提取到前台甚至后台服务中,在应用程序本身无需运行时运行?
2个回答

6

在使用 Nearby Connections 服务时没有任何限制。但是,Android 总是有些过于积极地杀死后台服务(自 Android Oreo 以来更加积极)。同时,没有办法限制功率,因此广告、扫描和长时间维持连接将对电池寿命产生不利影响。计划公开一个低功耗标志,但没有具体时间表。

免责声明:我在 Nearby Connections 上工作。


一旦您的进程终止,附近连接将关闭您的应用程序创建的任何活动广告/扫描/连接。 - Xlythe

0
在运行Android Q或更高版本的设备上,必须请求ACCESS_FINE_LOCATION权限才能使用附近连接。当应用程序在后台运行服务(如JobService)时,在运行Android Q或更高版本的设备上使用附近连接时,除非已向应用程序授予ACCESS_BACKGROUND_LOCATION权限,否则该应用程序将无法发现也无法广告。要获得Google授予的权限,您需要详细说明您的应用程序为什么需要它,并且不能保证您将获得该权限。话虽如此,在低于Q的Android版本中,只要应用程序请求了所有所需权限(BLUETOOTH、BLUETOOTH_ADMIN、ACCESS_WIFI_STATE、CHANGE_WIFI_STATE和ACCESS_COARSE_LOCATION),就可以成功地在后台服务中发现和广告。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接