geolocationblackberry-10blackberry-android

Cannot get network location from BB10 device


I am porting an Android app to BlackBerry 10 OS using the Java Runtime support. My app is working fine on Android devices currently, but I cannot get location updates from the BlackBerry device.

My manifest requests the COARSE_LOCATION permission:

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

In my code, I request location updates from an 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");

I see the "registered listeners" log line printed from the device, but I never see "onLocationChanged" get logged, and my code that saves the supplied location is never invoked.

In some other place, I try to fetch the last known location:

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

lastLocation is always null.

To be clear, this code works fine on Android devices and is well tested.

Also relevant: the BB10 device reports that my app has the GPS location permission, but not the regular location permission, even though my manifest requests COARSE_LOCATION only. Might be related?

UPDATE:

I have an open ticket with BlackBerry Support. They say "This is a known issue it is in the process of being fixed with internal development."


Solution

  • The problem was in the BlackBerry Android runtime. It has been fixed in OS 10.1.

    The support ticket is here (now closed): https://www.blackberry.com/jira/browse/BBTEN-999

    See this forum thread also: http://supportforums.blackberry.com/t5/Android-Runtime-Development/Can-not-fetch-location-using-network-provider/m-p/2424553#M5040