3

我正在使用 Java 运行时支持将 Android 应用程序移植到 BlackBerry 10 OS。我的应用程序目前在 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 始终为空。

需要明确的是,这段代码在 Android 设备上运行良好,并且经过了很好的测试。

同样相关:BB10 设备报告我的应用程序具有 GPS 位置权限,但没有常规位置权限,即使我的清单仅请求 COARSE_LOCATION。可能有关系?

更新:

我有一张 BlackBerry Support 的未结票。他们说“这是一个已知问题,正在通过内部开发解决。”

4

2 回答 2

2

您是否已在条形描述符 xml 文件中读取地理位置权限集?

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

于 2013-03-17T16:30:04.103 回答
1

问题出在 BlackBerry Android 运行时。它已在 OS 10.1 中修复。

支持票在这里(现已关闭):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

于 2013-06-12T19:48:13.050 回答