LocationManager.getSingleUpdate()没有执行任何回调 - 为什么?

时间:2014-06-23 13:40:15

标签: android

所以这段代码在周五工作:

    public void requestLocationUpdate() {
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_COARSE);
        Intent updateIntent = new Intent(SINGLE_LOCATION_UPDATE_ACTION);
        PendingIntent singleUpdatePI = PendingIntent.getBroadcast(_context, 0, updateIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        IntentFilter locIntentFilter = new IntentFilter(SINGLE_LOCATION_UPDATE_ACTION);
        SingleUpdateReceiver receiver = new SingleUpdateReceiver(); 
        getApplicationContext().registerReceiver(receiver, locIntentFilter);
        locationManager.requestSingleUpdate(criteria, singleUpdatePI);  
    }

    class SingleUpdateReceiver extends BroadcastReceiver {      
        @Override
        public void onReceive(Context context, Intent intent) {
            // ... never invoked
        }
    }

今天,onReceive()根本不会被调用。这有什么理由不适合今天吗?唯一改变的是我现在在不同的WiFi路由器上。

我可以在LogCat中看到几条可疑的行:

06-23 15:10:36.540     709-7716/? D/LocationManagerService﹕ request 430483d8 fused Request[ACCURACY_BLOCK fused requested=+10m0s0ms fastest=+10m0s0ms num=1] from com.nilzor.app(10195)
06-23 15:10:36.540     709-7716/? D/LocationManagerService﹕ provider request: fused ProviderRequest[ON interval=+10m0s0ms]

......不知道这是否相关?

requestSingleUpdate的文档将我指向requestLocationUpdates,这再次告诉我可能需要一段时间才能获得第一次更新。 requestSingleUpdate也是如此吗?在周五,回调在请求的第二个内发出。今天我已经尝试了10次以上并没有开过一次。我现在发帖计算5分钟。

1 个答案:

答案 0 :(得分:0)

当您连接到Wi-Fi时,您将从路由器获取坐标。无论您身在何处,在您的Wi-Fi区/地方都使用真正的GPS或gps扰流板。