gpt4 book ai didi

android - 苹果是否要求您为 iBeacons 配备一些特殊芯片?

转载 作者:行者123 更新时间:2023-11-28 20:55:11 25 4
gpt4 key购买 nike

在玩 iBeacon 模拟器时,我注意到了这一点:

*无论模拟iBeacons的设备是什么(iOS和Android)Android手机都可以识别iBeacons

*只有当模拟设备也是 iPhone 时,iPhone 才能识别 iBeacons。

这是为什么呢?是硬件问题吗?

最佳答案

iBeacon 不依赖于硬件或操作系统。您可以从 Android、iOS、MacOS、Linux、Windows 10 和许多嵌入式平台传输 iBeacon 数据包。

这张照片显示了来自 Android Nexus 5X 的传输和在 iPhone 6 上的检测:

android transmitting ibeacon to ios

这里没有什么特别的技巧,但肯定有可能把事情搞砸,所以它不起作用。两个最常见的陷阱是:

  1. 发射器必须设置为使用 Apple Bluetooth LE 制造商代码 0x004c

  2. 发射器必须发送与 iOS 接收器设置为使用已配置的 CLBeaconRegion 检测的相同 ProximityUUID(也称为 ID1)。

上面的设置使用了 BeaconScope Android 上的应用程序(使用 Android Beacon Library 传输 iBeacon)和 Locate iOS 上的应用程序(使用 CoreLocation 检测 iBeacon)。

使用 AndroidBeaconLibrary,设置这个发射器就这么简单:

    Beacon beacon = new Beacon.Builder()
.setId2(1) // Major for beacon
.setId3(1) // Minor for beacon
.setManufacturer(0x004C) // Apple
.setTxPower(-56) // Power in dB
.build();

BeaconParser beaconParser = new BeaconParser()
.setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");

transmitter = new BeaconTransmitter(context, beaconParser);
transmitter.startAdvertising(beacon, new AdvertiseCallback() {
@Override
public void onStartFailure(int errorCode) {
Log.i(Settings.DEBUG, "Advertisement start failed with code: " + errorCode);
}
});

关于android - 苹果是否要求您为 iBeacons 配备一些特殊芯片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53002898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com