我正在以这种方式启动位置提供商:
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Intent locationIntent = new Intent(context, LocationReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, locationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER,
MINIMAL_TIME,
MINIMAL_DISTANCE,
pendingIntent);
然后,我的接收器以这种方式实现:
public void onReceive(Context context, Intent intent) {
if(intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) {
Location location = (Location)intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED);
我的问题如下:
在Galaxy Nexus上,接收器永远不会被触发。
如果我之前手动启动Google地图应用程序,我就成功触发了它。然后,它没有任何问题。如果我重置手机(取出电池),则会再次出现问题。
对此有何解决方案?
我在stackoverflow上遇到了很多类似的问题,但从未找到过有效的解决方案。
编辑:
我发现使用没有数据访问权限的SIM卡会发生此问题,即使WiFi已被灌输并已连接。使用具有数据访问权限的SIM,此问题不会发生。
在Nexus One上,无论我使用何种SIM卡(包含数据或没有数据),都不会出现此问题。