Я недавно установил это приложение 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) , всегда возвращающей ноль?