无法从BB10设备获取网络位置

时间:2013-03-12 19:31:14

标签: geolocation blackberry-10 blackberry-android

我正在使用Java Runtime支持将Android应用程序移植到BlackBerry 10 OS。我的应用目前在Android设备上正常运行,但我无法从BlackBerry设备获取位置更新。

我的清单请求COARSE_LOCATION权限:

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

在我的代码中,我从活动请求位置更新:

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。可能有关系吗?

更新:

我有一张黑莓支持的开放票。他们说“这是一个已知的问题,它正处于与内部发展相关的过程中。”

2 个答案:

答案 0 :(得分:2)

您是否在条形码描述符xml文件中设置了地理位置权限?

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

答案 1 :(得分:1)

问题出在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/m-p/2424553#M5040