Android P WifiRttManager всегда нулевой - PullRequest
0 голосов
/ 25 ноября 2018

Я недавно установил это приложение RTT-Manager на свой смартфон, главным образом, чтобы выяснить, поддерживает ли мое устройство и доступные точки доступа стандарт IEEE 802.11mc.

Однако, как толькокогда я запускаю приложение, оно падает.Это вызвано исключением NullPointerException в экземпляре WifiRttManager.Затем я настроил крошечное приложение, которое содержит только этот код в MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WifiRttManager rttManager = (WifiRttManager) getBaseContext().getSystemService(Context.WIFI_RTT_RANGING_SERVICE);
    rttManager.isAvailable();
}

Это приводит к той же ошибке:

Unable to start activity ComponentInfo{...MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.net.wifi.rtt.WifiRttManager.isAvailable()' on a null object reference

WifiRttManager требует как Android P, так иПроцессор, поддерживающий 802.11mc (например, процессор Qualcomm Snapdragon 820, как было сказано автором ранее упомянутого RTT-Manager-App).

Сначала я попытался запустить приложение на OnePlus X (Android P и QualcommSnapdragon 801), где он потерпел крах, поэтому я подумал, что процессор не поддерживает 802.11mc.

Однако затем я также попытался запустить его на OnePlus 6T (Android P и Qualcomm Snapdragon 845), где тот же сбой..

В чем еще причина getSystemService (Context.WIFI_RTT_RANGING_SERVICE) , всегда возвращающей ноль?

1 Ответ

0 голосов
/ 20 марта 2019

Кажется, ваш телефон должен быть включен для поддержки wirirtt.Согласно документу Google, https://source.android.com/devices/tech/connect/wifi-rtt

Для реализации Wi-Fi RTT необходимо обеспечить поддержку как среды, так и HAL / прошивки:

Структура:

Код AOSP ВключитьWi-Fi RTT: требуется флаг функции Wi-Fi RTT (IEEE 802.11mc) Поддержка HAL (что подразумевает поддержку встроенного программного обеспечения)

Чтобы реализовать эту функцию, внедрите Wi-Fi HIDL и включите флаг функции:

В device.mk, расположенном в device //, измените переменную среды PRODUCT_COPY_FILES, чтобы включить поддержку функции RTT Wi-Fi:

PRODUCT_COPY_FILES + = frameworks / native / data / etc / android.hardware.wifi.rtt.xml: $ (TARGET_COPY_OUT_VENDOR) /etc/permissions/android.hardware.wifi.rtt.xml

В противном случае все, что требуется для этой функции, включено в AOSP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...