Библиотека Android AltBeacon и Android Beacon API предоставляют возможность установить мощность рекламы для рекламы маяка. Доступные настройки: «Высокий», «Средний», «Низкий» и «Сверхнизкий». Во время моего тестирования я не обнаружил никакой разницы в диапазоне видимости между ультранизкой и низкой. Я хотел бы понять, что такое диапазон видимости для каждого уровня мощности. Нужно ли мне учитывать какие-либо другие настройки для повышения мощности рекламы и диапазона видимости? Любая идея о том, как влияет батарея на разную мощность рекламы и ее частоту? Как мне решить, какие настройки использовать и когда?
недействительным 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");
}