安卓AltBeacon广告功率和能见度范围



Android AltBeacon库和Android Beacon API提供了设置广告功率以广告信标的选项。可用设置有高、中、低和超低。在我的测试中,我没有发现超低和低之间的能见度范围有任何差异。我想了解每个功率级别的能见度范围是多少。我需要考虑任何其他设置来提高广告力和可见性范围吗?你知道不同的广告功率和频率对电池的影响吗?如何决定使用什么设置以及何时使用?

void startBeacon(){

if (!beaconTransmitter.isStarted()) {
try {
String id1 = editTextUUID.getText().toString();
String id2 = "1";
String id3 = "2";
final String advertizeMode =
((RadioButton) findViewById(advrtzFreqRadioButtonGroup.getCheckedRadioButtonId()))
.getText().toString();
if (advertizeMode.equals("LOW_POWER")) {
beaconTransmitter.setAdvertiseMode(ADVERTISE_MODE_LOW_POWER);
} else if (advertizeMode.equals("BALANCED")) {
beaconTransmitter.setAdvertiseMode(ADVERTISE_MODE_BALANCED);
} else if (advertizeMode.equals("LOW_LATENCY")) {
beaconTransmitter.setAdvertiseMode(ADVERTISE_MODE_LOW_LATENCY);
}
final String advertizePower =
((RadioButton) findViewById(advrtzPowerRadioButtonGroup.getCheckedRadioButtonId()))
.getText().toString();
if (advertizePower.equals("ULTRA_LOW")) {
beaconTransmitter.setAdvertiseTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_ULTRA_LOW);
} else if (advertizePower.equals("LOW")) {
beaconTransmitter.setAdvertiseTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_LOW);
} else if (advertizePower.equals("MEDIUM")) {
beaconTransmitter.setAdvertiseTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM);
} else if (advertizePower.equals("HIGH")) {
beaconTransmitter.setAdvertiseTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH);
}
int transmissionPower = Integer.parseInt(editTextTxPower.getText().toString());
beacon = new Beacon.Builder()
.setId1(id1)
.setId2(id2)
.setId3(id3)
.setManufacturer(0x0118)
.setTxPower(transmissionPower)
.setDataFields(Arrays.asList(new Long[]{0l}))
.build();
beaconTransmitter.startAdvertising(beacon);
Log.d(TAG, "startAdvertising started");
textViewStatus.setText("startAdvertising started...");
} catch (Exception e) {
Log.d(TAG, e.getMessage());
textViewStatus.setText("Error:" + e.getMessage());
}
} else {
Log.d(TAG, "Already dvertising");
textViewStatus.setText("Already startAdvertising...");
}
button.setText("Stop Beacon");
}

不同的发射机功率设置由底层的Android操作系统API提供,并不特定于Android Beacon Library。。不同功率水平之间的实际差异因设备型号而异。例如,在我用来测试API的第一台设备Nexus 4上,在任何范围内都无法检测到超低水平。我想说,由于缺乏可靠性,这种超低设置对于任何生产目的都是不可取的。

高设置在所有设备上通常都是相似的,因为它受到监管机构的限制,以防止在更高(非法)功率水平下的无线电干扰。它确实会根据每个设备的天线、天线位置和情况而有所不同,通常在一米处约为-59 dBm。

即使在满功率的情况下,广告信标也不会导致手机电池严重耗尽。与电池待机、屏幕或CPU活动等其他消耗源相比,所使用的能量微不足道。使用的功率太低,很难测量。令人惊讶但真实!

除高功率设置外,很少使用其他功率设置。它有时对测试有用。低功率电平也有助于限制检测范围,但在接收侧使用最小RSSI阈值可以更可靠地处理,因为使发射机处于最大功率可以提供更高的信噪比和更可靠的检测。只有当您在使用情况下无法控制接收器代码(添加最小RSSI滤波器)时,才应降低发射器功率以限制检测范围。

最新更新