com.google.android.gms уничтожает мою батарею

Что-то случилось около двух месяцев назад. С тех пор 2-3 раза в день приложение com.google.android.gmsначинает жрать батарею как сумасшедшее (рутированный Android 4.4 в Galaxy Note 4). Я думаю, это для какой-то синхронизации Google.

Logcat показывает странное поведение с кучей подобных сообщений:

W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#
V/AlarmManager( 3363): waitForAlarm result :8
W/ctxmgr  (25335): [ContextSpecificAclFactory]LocationConsent failed, ULR opt-in status is: false, account#-63XXXXX32#
W/ctxmgr  (25335): [AclManager]No 2 for (accnt=account#-63XXXXX32#, com.google.android.gms(10015):UserLocationProducer, vrsn=10084000, 0, 3pPkg = null ,  3pMdlId = null). Was: 2 for 1, account#-63XXXXX32#

Единственный способ, который я нашел, чтобы остановить это, — убить com.google.android.gms вручную, но рано или поздно он снова воскресает.

Кажется, Google пытается сделать мою жизнь невыносимой, потому что какое-то согласие на определение местоположения не было дано?

Ответы (1)

Благодаря журналам я нашел виновника: плохие (может быть, даже незаконные?) действия Google Maps.

Поскольку я ненавижу спам и ненавижу, когда Google отслеживает мою рекламу, я всегда отказываюсь от всего этого. В последней версии Google Maps для Android есть опция Location History, которая была отключена. Поскольку Google Maps имеет дьявольское поведение, пытаясь отследить вас, запуская себя, когда вы не открываете его самостоятельно, он открывается в фоновом режиме и пытается сохранить ваше местоположение на своих серверах. Это вызвало сумасшедший цикл из-за моей Location Historyвыключенной настройки.

Единственное решение, которое я нашел, по крайней мере, если я хочу продолжать использовать Карты Google, состояло в том, чтобы включить Location History. Батарея больше не разряжается.

Google копирует худшие методы Microsoft со скоростью света.

Это может быть просто очень плохой контроль качества со стороны Google. Их не интересуют такие варианты использования, как «История местоположений: выключено», и они не тестируют код для этого случая...