Android AltBeacon рекламирует мощность и дальность видимости

Библиотека 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");
}

person Raj    schedule 02.02.2019    source источник


Ответы (1)


Различные настройки мощности передатчика предоставляются базовыми API-интерфейсами ОС Android и не относятся к библиотеке Android Beacon. Фактическая разница между различными уровнями мощности значительно зависит от модели устройства. Например, на Nexus 4, первом устройстве, которое я использовал для тестирования этого API, сверхнизкий уровень вообще не обнаруживался ни на каком расстоянии. Я бы сказал, что эта сверхнизкая настройка не рекомендуется для каких-либо производственных целей из-за недостаточной надежности.

Высокая настройка, как правило, одинакова на всех устройствах, поскольку она ограничена регулирующими органами для предотвращения радиопомех при более высоких (незаконных) уровнях мощности. он немного различается в зависимости от антенны каждого устройства, размещения антенны и корпуса, обычно он составляет около -59 дБм на расстоянии одного метра.

Рекламные маяки не вызывают значительного разряда аккумулятора телефона даже при полной мощности. Используемая энергия незначительна по сравнению с другими источниками потребления, такими как режим ожидания соты, экран или активность процессора. Используемая мощность настолько мала, что ее трудно измерить. Удивительно, но факт!

Случаи использования настроек мощности, отличных от высоких, встречаются редко. Иногда это полезно для тестирования. Низкие уровни мощности также полезны для ограничения дальности обнаружения, но это более надежно обрабатывается при минимальных пороговых значениях RSSI на приемной стороне, поскольку оставление передатчика на максимальной мощности обеспечивает более высокое отношение сигнал/шум и более надежное обнаружение. Только если вы не можете управлять кодом приемника в вашем случае использования (чтобы добавить минимальный фильтр RSSI), вы должны уменьшить мощность передатчика, чтобы ограничить дальность обнаружения.

person davidgyoung    schedule 02.02.2019
comment
Большое спасибо за ваш подробный ответ. Мой вариант использования требует ограничения дальности обнаружения и, следовательно, я подумал об использовании сверхнизкой мощности. - person Raj; 03.02.2019