我正在做一个ble项目,这个项目也计划在iOS和Android上发布。为了在我的概念中为两个操作系统提供最佳功能,我需要一个通用的制造商ID。因为这在iOS上是不可更改的,所以我的想法是在Android设备上也使用苹果制造商ID。我测试了一下,效果很好。
我的问题是,它是合法的使用苹果制造商ID为我的应用程序与Android设备或不?如果它不合法,我必须改变我的整个概念,它就不会像那个解决方案那样具有性能。
谢谢!
制造商id背后的公司是唯一被允许指定如何使用其制造商id和制造商数据格式的公司。
您不得以未经相应公司批准的方式使用制造商id。
例如,苹果已经批准使用他们的iBeacon格式,其中第一个字节必须以0x02 (https://en.wikipedia.org/wiki/IBeacon)开头。如果你遵循他们的规范,你可以让任何设备使用这种数据格式做广告。如果您是蓝牙SIG的成员,您可以通过https://support.bluetooth.com/hc/en-us/articles/360062030092-Requesting-Assigned-Numbers请求制造商id。
如果您不是GATT成员,但需要自定义广告数据格式,您可以使用自定义128位GATT服务UUID并使用服务数据广告类型,但这会占用更多字节。
现在,CoreBluetooth(与Android相比)似乎没有任何用于自定义广告数据的API,除了广告GATT服务UUID。所以,为了让你的应用在两个平台上表现相同,你应该先做iOS应用,然后在制作Android应用时模仿广告数据。如果你使用苹果的制造商id,请确保你遵循苹果设置的任何规范。