Могу ли я узнать, кто меняет громкость мультимедиа Android?

В последнее время громкость мультимедиа моего телефона будет автоматически изменена на фиксированное значение через период. Я предполагаю, что это плохое приложение работает в фоновом режиме или по тревоге, но я понятия не имею, какое из них является осужденным.

Есть ли способ сообщить мне, кто меняет громкость системного носителя? Мое устройство — HTC Butterfly 3 с официальной прошивкой Android 5.0.2 — и энергосбережение не включено (если это имеет значение). Спасибо!

Нужно знать, какое устройство вы используете. Кроме того, включена ли функция «Энергосбережение» на вашем устройстве. (Не могу сказать вам, как проверить, поскольку вы не указали, какое устройство вы используете.) Если вы знаете, как включить или выключить функцию «Энергосбережение» на вашем устройстве, попробуйте отключить ее и посмотреть, автоматически ли ваши тома поставили себя заново.

Ответы (1)

В моем COS12 (Android 5.0.2) я заметил, что всякий раз, когда изменялся объем, передавалось намерение с действием android.media.VOLUME_CHANGED_ACTION, и это все, что я смог увидеть с помощью dumpsys или . Дополнения в этом намерении не содержали ничего полезного для отслеживания приложения.

Во всяком случае. Вот что я могу порекомендовать в качестве подхода и на данный момент:

Установите aSpotCat 1 , снимите флажок « Игнорировать системные приложения» в его настройках и в разделе «Список приложений по разрешению» просмотрите раздел « Настройки звука » . Это приложение пропустило некоторые системные приложения, о которых позаботился мой ответ здесь 2 .

(Нажмите на изображение, чтобы увеличить)

ИЗОБРАЖЕНИЕ:

Я предлагаю вам проверить полное имя пакета приложения View? и узнайте имя пакета всех приложений, перечисленных aSpotCat. После этого удалите все установленные пользователем приложения. Поскольку удаление может быть для вас нежелательным вариантом, вы можете скрыть/заблокировать их. Настройте на ПК и выполните:

adb shell pm block ПАКЕТ # для KitKat
adb shell pm hide ПАКЕТ # для Lollipop

PACKAGE следует заменить именем пакета приложения. Короче говоря, эффект, наблюдаемый от этой команды, аналогичен удалению приложения из вашей ОС, с большим отличием в том, что данные приложения и UID останутся сохраненными .

Чтобы восстановить приложение, замените скрытие на отображение и блокировку на разблокировку в вышеупомянутых командах.

Вам придется подождать и наблюдать, меняется ли громкость. Если да, скройте/заблокируйте/удалите эти установленные пользователем приложения по отдельности или массово, а затем снова перейдите в режим наблюдения. Если все установленные пользователем приложения удалены, но изменение объема мультимедиа можно наблюдать, значит, в процессе задействовано системное приложение. Если у вас установлено пользовательское или вы готовы устройства, только тогда вам следует подумать о том, чтобы скрыть/заблокировать/отключить системное приложение, указанное в aSpotCat, поскольку это может повлиять на стабильность ОС.

Как вы уже догадались, это запутанное решение, основанное на пробах и ошибках и не гарантирующее, что вы сможете точно определить приложение. Однако я не думаю, что есть какой-либо способ легко определить приложение, влияющее на громкость мультимедиа.


1 Вы можете попробовать любое приложение для проверки разрешений. Полезный список , поддерживаемый пользователем Иззи на его веб-сайте, может пригодиться.
2 Введите разрешение android.permission.MODIFY_AUDIO_SETTINGS .

С ADB можно также подумать adb uninstall -k <package_name>о том, чтобы убедиться, что приложение ушло, но не его данные ( -k= «сохранить данные»). Поэтому, если выяснится, что удаленное приложение не было виновником, его можно переустановить, .apkиспользуя файлы adb install -r <file>. Или, если приложение не отказалось, используйте adb backup -apk -f <file.ab> <package_name>, затем удалите, и adb restore <file.ab>если приложение было признано «невиновным» ;) +1 за подробный ответ!