nlpwakelock и опция «Использовать беспроводные сети»

В разделе «Службы определения местоположения» есть параметр «Использовать беспроводные сети» — всякий раз, когда этот параметр включен, я получаю постоянные «nlpwakelocks», и батарея разряжается намного быстрее.

Однако я вижу, что это было предположительно исправлено Google: http://www.androidpolice.com/2013/05/29/download-latest-google-play-store-4-1-10/ (моя версия 4.3. 11), но я все еще получаю вейклоки на своем SGSIII.

Устройство постоянно запрашивает мое местоположение с этой опцией, или мое сетевое подключение меняется, и каждый раз срабатывает блокировка (например, сети Wi-Fi и вышки сотовой связи входят и выходят из зоны действия)?

Было бы хорошо иметь возможность использовать эту опцию, поскольку такие приложения, как Google Now, могут знать, где я нахожусь, но разрядка батареи означает, что мне приходится каждый раз переключаться и не забывать выключать ее.

Обновлять

Вывод LogCat (отфильтровано до строк, содержащих «местоположение»)

09-04 14:54:40.605 I/XPrivacy/XRuntime(10598): get 10240/su shell=false *   
09-04 14:54:48.080 I/dalvikvm-heap(15987): Grow heap (frag case) to 16.758MB for 2359312-byte allocation    
09-04 14:54:52.325 I/dalvikvm-heap(15987): Grow heap (frag case) to 19.454MB for 2391216-byte allocation    
09-04 14:54:53.020 I/dalvikvm-heap(15987): Grow heap (frag case) to 19.845MB for 2240016-byte allocation    
09-04 14:54:54.365 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false 11 ms  
09-04 14:54:54.425 I/XPrivacy/XTelephonyManager( 4958): get 10018/getCellLocation location=false 60 ms  
09-04 14:54:54.440 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false 7 ms    
09-04 14:54:54.470 I/XPrivacy/XTelephonyManager( 4958): get 10018/getNeighboringCellInfo location=false 12 ms   
09-04 14:54:57.635 I/dalvikvm-heap( 4772): Grow heap (frag case) to 17.766MB for 1244176-byte allocation    
09-04 14:54:58.630 I/dalvikvm-heap( 4772): Grow heap (frag case) to 17.708MB for 1244176-byte allocation    
09-04 14:55:02.110 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 7 ms  
09-04 14:55:02.115 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false *  
09-04 14:55:02.125 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false *   
09-04 14:55:06.100 I/XPrivacy/XWifiManager( 4958): get 10018/getScanResults location=false 12 ms    
09-04 14:55:06.120 I/XPrivacy/XWifiManager( 5110): get 10018/getScanResults location=false 32 ms    
09-04 14:55:06.375 I/GCoreUlr( 5110): Successfully inserted location    
09-04 14:55:06.400 I/GCoreUlr( 5110): Not calling LocationReportingService, hasMoved: false, elapsed millis: 725934, request: Phone 
09-04 14:55:25.375 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false 11 ms  
09-04 14:55:25.380 I/XPrivacy/XTelephonyManager( 4958): get 10018/getCellLocation location=false 16 ms  
09-04 14:55:25.445 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false 11 ms   
09-04 14:55:25.455 I/XPrivacy/XTelephonyManager( 4958): get 10018/getNeighboringCellInfo location=false 9 ms    
09-04 14:55:47.510 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 12 ms 
09-04 14:55:49.525 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 14:56:02.700 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 167 ms    
09-04 14:56:02.790 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false 8 ms   
09-04 14:56:02.985 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false 11 ms   
09-04 14:56:06.875 I/XPrivacy/XWifiManager( 5110): get 10018/getScanResults location=false 128 ms   
09-04 14:56:07.225 I/XPrivacy/XWifiManager( 4958): get 10018/getScanResults location=false 475 ms   
09-04 14:56:07.400 I/GCoreUlr( 5110): Successfully inserted location    
09-04 14:56:07.445 I/GCoreUlr( 5110): Not calling LocationReportingService, hasMoved: false, elapsed millis: 786963, request: Phone 
09-04 14:56:09.455 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 14:57:03.255 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 194 ms    
09-04 14:57:03.795 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false 10 ms  
09-04 14:57:03.850 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false 7 ms    
09-04 14:57:07.940 I/XPrivacy/XWifiManager( 4958): get 10018/getScanResults location=false 39 ms    
09-04 14:57:07.950 I/XPrivacy/XWifiManager( 5110): get 10018/getScanResults location=false 57 ms    
09-04 14:57:08.400 I/GCoreUlr( 5110): Successfully inserted location    
09-04 14:57:08.450 I/GCoreUlr( 5110): Not calling LocationReportingService, hasMoved: false, elapsed millis: 847966, request: Phone 
09-04 14:57:27.490 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 28 ms 
09-04 14:57:34.450 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 14:58:02.735 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 17 ms 
09-04 14:58:03.100 I/dalvikvm-heap( 5110): Grow heap (frag case) to 14.625MB for 30998-byte allocation  
09-04 14:58:03.810 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false 10 ms  
09-04 14:58:03.890 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false 17 ms   
09-04 14:58:07.910 I/XPrivacy/XWifiManager( 5110): get 10018/getScanResults location=false 44 ms    
09-04 14:58:07.920 I/XPrivacy/XWifiManager( 4958): get 10018/getScanResults location=false 48 ms    
09-04 14:58:19.625 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 28 ms 
09-04 14:58:19.820 I/GCoreUlr( 5110): Successfully inserted location    
09-04 14:58:19.875 I/GCoreUlr( 5110): Not calling LocationReportingService, hasMoved: false, elapsed millis: 919382, request: Phone 
09-04 14:58:46.625 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 17 ms 
09-04 14:58:51.720 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 14:59:03.820 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 143 ms    
09-04 14:59:04.060 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false 11 ms  
09-04 14:59:04.130 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false 14 ms   
09-04 14:59:08.115 I/XPrivacy/XWifiManager( 5110): get 10018/getScanResults location=false 86 ms    
09-04 14:59:08.360 I/XPrivacy/XWifiManager( 4958): get 10018/getScanResults location=false 325 ms   
09-04 14:59:08.885 I/GCoreUlr( 5110): Successfully inserted location    
09-04 14:59:08.940 I/GCoreUlr( 5110): Not calling LocationReportingService, hasMoved: false, elapsed millis: 968451, request: Phone 
09-04 14:59:18.535 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 14:59:24.500 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 50 ms 
09-04 14:59:26.435 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 14:59:30.550 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 15:00:03.550 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 21 ms 
09-04 15:00:04.130 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false 14 ms  
09-04 15:00:04.210 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false 15 ms   
09-04 15:00:08.205 I/XPrivacy/XWifiManager( 5110): get 10018/getScanResults location=false 75 ms    
09-04 15:00:08.205 I/XPrivacy/XWifiManager( 4958): get 10018/getScanResults location=false 68 ms    
09-04 15:00:08.985 I/GCoreUlr( 5110): Successfully inserted location    
09-04 15:00:09.040 I/GCoreUlr( 5110): Not calling LocationReportingService, hasMoved: false, elapsed millis: 1028547, request: Phone    
09-04 15:00:14.707 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 15:00:34.720 I/XPrivacy/XTelephonyManager( 4958): get 10018/getCellLocation location=false 11 ms  
09-04 15:00:35.195 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false 432 ms    
09-04 15:00:35.375 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false 27 ms  
09-04 15:00:35.420 I/XPrivacy/XTelephonyManager( 4958): get 10018/getNeighboringCellInfo location=false 58 ms   
09-04 15:00:35.495 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false 9 ms    
09-04 15:00:35.525 I/XPrivacy/XLocationManager( 5110): get 10018/isProviderEnabled location=false * 
09-04 15:00:41.550 I/dalvikvm-heap(12643): Grow heap (frag case) to 14.987MB for 13792-byte allocation  
09-04 15:00:42.950 I/Wakelock(12643): Substraction Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReportingService], m_duration=3106] from Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReportingService], m_duration=3159]   
09-04 15:00:42.950 I/Wakelock(12643): Result: Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReportingService], m_duration=53]    
09-04 15:00:43.600 I/StatsAdapter(12643): Values: NlpLocationReceiverService18 m 23 s  (1103 s) 
09-04 15:00:45.290 I/XPrivacy/XTelephonyManager( 5110): get 10018/getCellLocation location=false *  
09-04 15:00:45.295 I/XPrivacy/XTelephonyManager( 4958): get 10018/getCellLocation location=false *  
09-04 15:00:45.315 I/XPrivacy/XTelephonyManager( 5110): get 10018/getNeighboringCellInfo location=false *   
09-04 15:00:45.315 I/XPrivacy/XTelephonyManager( 4958): get 10018/getNeighboringCellInfo location=false *   
09-04 15:00:48.590 I/dalvikvm-heap(12643): Grow heap (frag case) to 14.603MB for 172252-byte allocation 
09-04 15:00:48.690 I/Wakelock(12643): Substraction Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReceiverService], m_duration=2081] from Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReceiverService], m_duration=3527] 
09-04 15:00:48.690 I/Wakelock(12643): Result: Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReceiverService], m_duration=1446]   
09-04 15:00:48.695 I/Wakelock(12643): Substraction Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReportingService], m_duration=3137] from Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReportingService], m_duration=3159]   
09-04 15:00:48.695 I/Wakelock(12643): Result: Wakelock [m_wakeType=0, m_name=WakefulIntentService[GCoreUlr-LocationReportingService], m_duration=22]    
09-04 15:00:48.850 I/StatsAdapter(12643): Values: NlpLocationReceiverService18 m 23 s  (1103 s) 

Обновление 2

Дополнительная информация здесь: http://productforums.google.com/forum/#!topic/mobile/kZkk3E3YVTc .

Интересно, у вас нет приложения, которое постоянно спрашивает ваше местоположение? Однако такие вещи трудно протестировать, для этого требуются пробы и ошибки или сброс настроек к заводским. Можете ли вы опубликовать свой вывод logcat?
@Mr.Buster - обновлен вывод LogCat. Является ли мой метод определения правильных записей журнала надежным?

Ответы (2)

Я тоже страдал от этой проблемы (несколько раз на разных ромах). Nlpwakelocks появлялись в безумно большом количестве (несколько тысяч wakelocks за один день).

Мое первое исправление состояло в удалении всех обновлений google play, google services framework и google play services, очистке кешей и удалении данных, упомянутых ранее в Appmanager, а затем перезагрузке и повторной установке обновлений. Волшебным образом количество вейклоков упало до вполне приемлемого уровня. Это по-прежнему было основной причиной вейклоков, но не так сильно разряжало батарею, как раньше. С тех пор у меня была включена настройка «Использовать беспроводные сети» без сильного разряда батареи. Я мог бы счастливо жить с этим результатом.

Однако, поскольку я обновился до 4.3 (CM 10.2), в AppManager больше нет кнопки для удаления обновлений этих служб. К счастью, очистки кешей и данных, а затем перезагрузки, кажется, теперь достаточно. Единственная оговорка, кажется, карты Google. После обновления вам необходимо войти в свою учетную запись Google, чтобы увидеть ваши любимые места на картах Google. К сожалению, карты затем начинают опрашивать ваше местоположение каждые несколько минут, что снова поднимает nlpwakelocks до тревожного уровня.

Поскольку я еще не нашел обходного пути для этого, я всегда выхожу из Google Maps после использования и снова вхожу в систему, когда это необходимо. Не очень удобно, но таким образом я все еще могу использовать Google Now при приемлемом времени автономной работы.

Кроме того, если вы вообще не используете Google Talk/Hangouts, выйдите из системы и удалите ее (с помощью чего-нибудь вроде Titanium Backup ). Если у вас есть настоящий убийца автозапуска (например , Autostart Manager ), попробуйте остановить все службы, работающие с ' gtalk ' в названии (в Autorun Manager для этого есть очень удобное поле поиска). Этот последний абзац не имеет ничего общего с nlpwakelocks, но он должен значительно уменьшить утечку инфраструктуры сервисов Google.

Надеюсь это поможет!

Судя по вашему LogCat, вы установили приложение XPrivacy . Кажется, он постоянно запрашивает ваше местоположение. Попробуйте удалить это приложение и посмотрите, поможет ли это.

Этот пост на XDA подтверждает наличие проблемы. Просматривая этот поток немного больше, кажется, что были внесены изменения, чтобы уменьшить это, но это может быть проблема с приложениями, которые запрашивают ваше местоположение, и им не нравятся данные, которые они получают.

Вы также можете попробовать установить Wakelock Detector и посмотреть, прольет ли это свет на проблему.

Спасибо, похоже, у меня была похожая проблема до XPrivacy, и я не получаю сток только с включенным GPS. У меня есть Wakelock Detector и Better Battery Stats, и я знаю об этом nlpwakelock(и еще об одном nlpcollectorwakelock), когда включено «Использовать беспроводные сети».