2014-03-04 7 views
7

Meine App muss den Benutzer kontinuierlich verfolgen. Dafür habe ich eine LocationListener, die fortlaufend Ortsupdates erhalten soll. Das Problem ist, wenn der Bildschirm ausgeschaltet ist, erhält es keine Updates.Android empfängt keine Standortaktualisierungen, wenn der Bildschirm gesperrt ist

Ich habe versucht, eine Teil-Wach-Sperre und fügte hinzu:

mLocationRequest = LocationRequest.create(); 
     mLocationRequest.setInterval(LocationUtils.UPDATE_INTERVAL_IN_MILLISECONDS); 
     mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
     mLocationRequest.setFastestInterval(LocationUtils.FAST_INTERVAL_CEILING_IN_MILLISECONDS); 
     mLocationClient = new LocationClient(ADS.getAppContext(), new LocationGatherer(), new LocationGatherer()); 
     mLocationClient.connect(); 
     PowerManager pm = (PowerManager) ADS.getAppContext().getSystemService(Context.POWER_SERVICE); 
     PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag"); 
     wl.acquire(); 

Aber es erhält noch nicht Updates.

+0

Werfen Sie einen Blick [hier] (http://Stackoverflow.com/a/14478281/312312) Es sollte Ihnen helfen – Lefteris

Antwort

2

Nur stieß auf das gleiche Problem. Ich hatte auch den gleichen Code, obwohl es in einem Service war. Seltsamerweise hat es nicht funktioniert. Plugged in meinem Laptop und lief einen Befehl erwähnt in Android app high CPU usage, no services or wakelocks:

adb shell dumpsys power |grep -i wake 

Ganz plötzlich, Standortaktualisierungen gestartet ankommen (die Power-Taste gedrückt wurde, und der Bildschirm ausgeschaltet war).

Ich habe wirklich keine Ahnung, was das Problem hätte sein können, aber das hat es für mich gelöst.

Ab sofort werden Standortaktualisierungen auch dann empfangen, wenn der Bildschirm ausgeschaltet ist.

+0

Sehr gute Antwort. – peterh

Verwandte Themen