Android设备能否充当iBeacon,并确定其他Android设备何时进入其范围?其他Android设备是否需要开启蓝牙?
如果一个顾客来到我的商店,他的设备上没有安装我的应用程序,iBeacon可以工作吗,还是他必须先安装应用程序?每天都有这么多顾客来我们的商店,但是如果他们没有安装我的应用程序,iBeacon的概念有用吗?
纯AndroidSDK。零第三方代码-适用于开源尽职调查
byte[] payload = {(byte)0x02, (byte)0x15, // this makes it a iBeacon
(byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, // uuid
(byte)0x00, (byte)0x00, // Major
(byte)0x00, (byte)0x00}; // Minor
AdvertiseData.Builder dataBuilder = new AdvertiseData.Builder();
dataBuilder.addManufacturerData(0x004C, payload); // 0x004c is for Apple inc.
AdvertiseSettings.Builder settingsBuilder = new AdvertiseSettings.Builder();
settingsBuilder.setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY);
settingsBuilder.setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH);
settingsBuilder.setConnectable(false);
mAdvertiser.startAdvertising(settingsBuilder.build(), dataBuilder.build(), this);
将您的UUID小市长放在有效载荷中的这些地方,但保留前两个字节。
是的,Android设备可以充当iBeacon。我使用Android5实现这一点。X和AltBeacon库。半径网络的AltBeacon库提供了构建Android作为信标发射器和接收器的类。这里是一些代码,将为Android作为iBeacon工作:
Beacon beacon = new Beacon.Builder()
.setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6") // UUID for beacon
.setId2("1") // Major for beacon
.setId3("5") // Minor for beacon
.setManufacturer(0x004C) // Radius Networks.0x0118 Change this for other beacon layouts//0x004C for iPhone
.setTxPower(-56) // Power in dB
.setDataFields(Arrays.asList(new Long[] {0l})) // Remove this for beacon layouts without d: fields
.build();
BeaconParser beaconParser = new BeaconParser()
.setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
beaconTransmitter.startAdvertising(beacon, new AdvertiseCallback() {
@Override
public void onStartFailure(int errorCode) {
Log.e(TAG, "Advertisement start failed with code: "+errorCode);
}
@Override
public void onStartSuccess(AdvertiseSettings settingsInEffect) {
Log.i(TAG, "Advertisement start succeeded.");
}
});
希望它能帮助用户搜索android作为iBeacon. jj
是的,这在Android5上是可能的,您可以在Android信标库中找到作为信标传输的开源代码。谷歌Play商店的beacon Scope应用程序中还有一款功能齐全的信标发射机。
以下是使用Android Beacon库传输iBeacon的示例:
Beacon beacon = new Beacon.Builder()
.setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")
.setId2("1")
.setId3("2")
.setManufacturer(0x004c)
.setTxPower(-59)
.build();
BeaconParser beaconParser = new BeaconParser()
.setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
beaconTransmitter.startAdvertising(beacon);
你也可以在Android 4.4上作为信标进行传输。3台设备,但需要安装具有系统权限的应用程序。
带蓝牙的Android4.3设备可以看到iBeacons,但不能充当iBeacons,因为Android4.3不支持外设模式。三星Android设备包含单独的专有SDK,但也不允许设备充当iBeacons。请参阅:让三星Android设备作为iBeacon做广告)但是,iOS设备可以作为iBeacons。
通常,iBeacon技术不适用于手机查看其他手机。但你可以按照你在iOS上的建议,制作一个定制应用程序,让手机充当iBeacon,并在周围寻找其他iBeacon。这将允许使用该应用程序的任何人在附近看到使用相同应用程序的其他人。所有手机都需要打开蓝牙。
要回答第二个问题,是的,无论是Android还是iOS,移动设备都必须安装应用程序才能利用iBeacons。当前,当操作系统看到iBeacon时,都不会执行任何操作,除非安装了专门编程用于执行某些操作的应用程序。因此,到达商店的客户必须已经安装了应用程序,否则他们无法与iBeacons交互。
iOS7设备能否充当iBeacon并确定其他iOS7设备何时在其范围内?其他iOS7设备是否需要打开蓝牙?
我想从Android手机传输iBeacon封包,带有数据标志。 数据标志(0x01)是表示信标能力的蓝牙间隙规范 我的情况:目前,我正在尝试使用BluetoothLeAdvertiser做广告。但它并不像我想的那样有效。我发现,我只能宣传“制造商特定数据”。 我当前的结果: 我想要的: 通用iBeacon封包(下图)有数据标志,类型为0x01。我想将此标志添加到我的iBeacon广告数据包中。 这
想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 在回答另一个问题时,我看到“你也可以在根Android4.4.3设备上作为信标进行传输,但它需要安装一个具有系统权限的应用程序。” 如何做到这一点?
我正试图写一个游戏计划,我需要这个问题的信息: Android设备可以像iOS设备一样用作iBeacon发射器吗?
有没有人使用三星的蓝牙LE API让三星Android设备作为iBeacon做广告?这应该是可能的,但我没有访问设备来尝试它。 如果有人用它来做三星Android设备的广告,作为任何其他蓝牙LE外设,我也想知道这一点。 编辑:这现在可以在Android L上实现。请参见此处。
在Android4.3之前,支持蓝牙低能耗的Android设备只能充当中央设备。正如Android 4.3蓝牙LE文档中所给出的: 随着Android4.4 KitKat的推出,它现在是否也能表现为外围设备呢?我找不到任何关于这一点的文件。如果没有,那么我们是否必须等待Android 4.5才能在Android设备上获得BTLE外设模式?或者有没有其他方法可以让Android设备充当外围设备?