我正在使用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。可能有关系吗?
更新:
我有一张黑莓支持的开放票。他们说“这是一个已知的问题,它正处于与内部发展相关的过程中。”
答案 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