Не удается получить сетевое местоположение с устройства BB10

Я переношу приложение Android на ОС BlackBerry 10, используя поддержку Java Runtime. В настоящее время мое приложение нормально работает на устройствах Android, но я не могу получать обновления местоположения с устройства BlackBerry.

Мой манифест запрашивает разрешение COARSE_LOCATION:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

В моем коде я запрашиваю обновления местоположения из Activity:

LocationListener listener = new LocationListener()
{
    public void onLocationChanged(Location location)
    {
        Log.v(TAG, "onLocationChanged");
        // Code to save returned location...
    }
    public void onStatusChanged(String provider, int status, Bundle extras) {}
    public void onProviderEnabled(String provider)  {}
    public void onProviderDisabled(String provider) {}
};
LocationManager lm = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
Log.v(TAG, "Registered network location listeners");

Я вижу строку журнала «зарегистрированные слушатели», напечатанную с устройства, но я никогда не вижу, чтобы «onLocationChanged» регистрировался, и мой код, который сохраняет предоставленное местоположение, никогда не вызывается.

В другом месте я пытаюсь получить последнее известное местоположение:

LocationManager lm = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
Location lastLocation = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

lastLocation всегда имеет значение null.

Чтобы было ясно, этот код отлично работает на устройствах Android и хорошо протестирован.

Также актуально: устройство BB10 сообщает, что у моего приложения есть разрешение на определение местоположения GPS, но не разрешение на обычное определение местоположения, хотя мой манифест запрашивает только COARSE_LOCATION. Может быть связано?

ОБНОВИТЬ:

У меня есть открытый тикет со службой поддержки BlackBerry. Они говорят: «Это известная проблема, она находится в процессе исправления с помощью внутренней разработки».


person James Busby    schedule 12.03.2013    source источник
comment
Привет, можешь поделиться идентификатором билета? У меня такая же проблема. Спасибо   -  person Gopalakrishnan Subramanian    schedule 12.06.2013
comment
Проблема заключалась в среде выполнения BlackBerry Android. Это было исправлено в OS 10.1. /BBTEN-999 См. также эту ветку форума: supportforums.blackberry.com/t5/Android-Runtime-Development/   -  person James Busby    schedule 12.06.2013


Ответы (2)


У вас есть разрешение на чтение геолокации, установленное в вашем xml-файле дескриптора панели?

http://developer.blackberry.com/air/documentation/bb10/r_barfile_dtd_ref_permission.html

person Arch    schedule 17.03.2013
comment
Я разрабатываю для Android Runtime, поэтому инструменты BlackBerry упаковывают мой Android APK для меня на основе AndroidManifest.xml. Я просмотрел файл BAR и вижу, что MANIFEST.MF перечисляет read_geolocation в Entry-Point-User-Actions, что кажется правильным. - person James Busby; 20.03.2013

Проблема заключалась в среде выполнения BlackBerry Android. Это было исправлено в OS 10.1.

Билет поддержки здесь (сейчас закрыт): https://www.blackberry.com/jira/browse/BBTEN-999

См. также эту ветку форума: http://supportforums.blackberry.com/t5/Android-Runtime-Development/Can-not-fetch-location-using-network-provider/mp/2424553#M5040

person James Busby    schedule 12.06.2013