繁体   English   中英

beacon_broadcast flutter package 中的错误代码 2 是什么意思?

[英]What does error code 2 in beacon_broadcast flutter package mean?

我正在使用 Flutter 制作信标广播应用程序。 我正在使用的库是 pub.dev 上的“beacon_broadcast”。 当我尝试启动它时,控制台说:

D/BeaconParser( 7318): Parsing beacon layout: m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25
D/BluetoothAdapter( 7318): isLeEnabled(): ON
D/BluetoothAdapter( 7318): isLeEnabled(): ON
E/BeaconTransmitter( 7318): Advertisement start failed, code: 2

错误代码 2 是什么意思? 我不需要任何其他帮助,我只想要含义,所以我认为我不需要显示代码。

此外,如果可能,请添加错误代码和含义列表。

每款手机 model 都有不同的蓝牙芯片,每款都支持有限数量的“广告位”。 每个插槽允许启动单个蓝牙 LE 广告。 如果手机已经使用了所有可用的广告位,则会出现此错误。

ADVERTISE_FAILED_TOO_MANY_ADVERTISERS
Added in API level 21
public static final int ADVERTISE_FAILED_TOO_MANY_ADVERTISERS
Failed to start advertising because no advertising instance is available.

Constant Value: 2 (0x00000002)

请参阅: https://developer.android.com/reference/android/bluetooth/le/AdvertiseCallback ,其中也列出了所有其他错误代码。

由于插槽是手机上的共享资源,因此其他应用程序可能正在使用某些插槽。 像 Nexus 4 这样的旧手机只支持一个插槽。 Pixel 3a 等较新的手机支持 10 个或更多插槽。 有些手机根本没有任何插槽。 请参阅此处了解不支持广告的设备列表

每个手机 OEM 都实现了蓝牙堆栈的一部分,将硬件桥接到 Android 操作系统。 此代码几乎总是封闭源代码。 根据此 OEM 层的实现方式(以及正确程度),它会影响可用广告位的数量。

不幸的是,没有 API 可以查询手机上理论上可用的广告位总数。 如果没有来自 OEM 的源代码,唯一的判断方法是在您的手机上进行出厂重置(以确保没有安装的其他应用程序正在使用插槽),并构建一个尝试启动一个又一个广告商的应用程序,计数直到一个失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM