Мне много раз говорили, что я слушаю музыку путь слишком громко, вплоть до потенциального повреждения слуха, особенно когда у меня подключены наушники. Не только мои друзья говорят мне об этом, но и мой Samsung Galaxy S4 тоже любит меня раздражать. Пройдя через наушники определенный порог громкости (девять шагов), я получаю это раздражающее предупреждение о высокой громкости.
Извините, мой слух не так хорош, как раньше, так что позвольте мне смириться с миром!
Если вы устали от постоянного ворчания, как я, то сделайте что-нибудь с этим. Хотя вы на самом деле не сможете замолчать своих друзей, вы можете помешать вашему Galaxy S4 выдать вам такое навязчивое предупреждение с большим объемом.
Шаг 1: Предпосылки
Для начала убедитесь, что на вашем Galaxy S4 включены «Неизвестные источники» и они имеют root-права. Вам также понадобится Xposed Framework для приобретения и применения необходимого мода.
Мы Сами Гробим Свои Уши! 4 Привычки, о Которых Нужно Забыть.
Шаг 2: Установите мод
Откройте Установщик Xposedнажмите на Скачать вкладку, затем найдите и установите модуль под названием NoSafeVolumeWarning от Dev Pyler. Теперь мы на самом деле показали вам, как отключить это предупреждение раньше, но мы использовали Wanam Xposed для грязной работы, которая требовала дополнительных шагов. NoSafeVolumeWarning выполняет работу быстрее, без реальной настройки.
После установки обязательно активируйте его и перезагрузите GS4, чтобы он заработал.
Шаг 3: выкинуть джемы!
После того, как ваше устройство перезагрузится, вы можете прослушать какую-нибудь музыку, поставить ее как можно громче и больше никогда не получать это предупреждение.
Этот мод не имеет реального приложения или пользовательского интерфейса, поэтому он готов к работе. Если вы когда-нибудь захотите вернуться обратно, просто отмените мод в Xposed Installer или полностью удалите его.
Это простая настройка вашего устройства, которая устраняет раздражающее напоминание о том, что мы можем повредить наши уши. Позволь мне беспокоиться об этом, когда я стану старым и серым. Цитирую рок-группу MC5: «Позволь мне быть тем, кто я есть, и позволь мне избавиться от пробок!»
Загрузка медиа на фан-страницы Facebook через мобильные устройства
Всегда есть более быстрый и эффективный способ сделать что-то, когда дело доходит до Facebook. И если у вас есть фан-страница Facebook (Like Page) для вашего сайта, это легко сделать прямо с вашего мо.
Как убрать ограничение громкости на андроид / Удаление пин кода для звука
Читать далее
Загрузить фото и видео на Facebook по электронной почте
Moniquewade покажет вам, как загружать фотографии и видео на Facebook с помощью электронной почты. У пользователя есть семь шагов, чтобы вы могли быстро и легко загружать фотографии и видео в Facebook.
Читать далее
Загрузить фото на Facebook
Вы новичок в социальной сети? Пытаетесь понять, как загрузить свои фотографии в Facebook? Это простое пошаговое руководство покажет вам точные шаги, которые нужно предпринять, чтобы загрузить свои фот.
Источник: ru.smartcity-telefonica.com
Как отключить предупреждение о вреде долгого прослушивания аудио (Android)
Наверное, многие, кто слушает музыку (и не только) с Android-устройства, сталкивались с таким предупреждением:
В этой статье мы рассмотрим, почему и когда возникает данное предупреждение, и как сделать так, чтобы оно больше не возникало.
Появляется оно только при прослушивании аудио через внешнее устройство (наушники/колонки). Для тех, кто не встречался с таким, небольшое пояснение: представьте, что вы слушаете музыку в наушниках, довольно громкую. Внезапно звук становится тише. Вы пытаетесь прибавить громкость, используя кнопки на корпусе, но не выходит.
Достав устройство из кармана и сняв блокировку, вы и увидите такое предупреждение. Только после согласия с ним можно будет прибавить громкость обратно.
Да, предупреждение разумное, но появляется оно в непредсказуемый момент, иногда самый неподходящий: когда вы в общественном транспорте/за рулём/зимой на улице/когда у вас грязные руки и т.д. Доставать устройство, снимать блокировку, соглашаться с предупреждением, класть устройство обратно в этих случаях неудобно. А в случае, если подключены колонки, а не наушники, сообщение не совсем уместно.
Почему оно возникает
Данное предупреждение — не собственная инициатива авторов платформы. Всё дело в том, что существует WHO-ETU стандарт “безопасного прослушивания” (safe listening). В европейских и некоторых других странах его выполнение обязательно. В стандарте описывается, как долго можно прослушивать аудио в зависимости от громкости с минимальным риском снижения слуха. Например, для взрослого человека безопасная недельная “доза” звука — 1.6 Pa 2 h, что эквивалентно 20 часам прослушивания на громкости 83 dB.
Реализация
В зависимости от mcc (mobile country code), режим safe listening может быть включен или выключен. Определяется это значением ресурса R.bool.config_safe_media_volume_enabled .
Если режим включен, то система считает время прослушивания на небезопасной громкости (выше 85 dB), и периодически сохраняет значение в переменную Settings.Secure.UNSAFE_VOLUME_MUSIC_ACTIVE_MS . Когда значение достигает 20 часов, выводится предупреждение. После согласия с предупреждением значение сбрасывается, и подсчёт начинается заново.
Такая реализация довольно простая и не учитывает, например, в течение какого времени пользователь прослушал эти 20 часов: возможно, за пару дней, а, может, слушал по 6-7 минут в течение полугода (в соответствии со стандартом это не является угрозой для слуха).
Логика safe listening сосредоточена в классе классе AudioService.java, в нём можно увидеть соответствующие поля:
// mMusicActiveMs is the cumulative time of music activity since safe volume was disabled. // When this time reaches UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX, the safe media volume is re-enabled // automatically. mMusicActiveMs is rounded to a multiple of MUSIC_ACTIVE_POLL_PERIOD_MS. private int mMusicActiveMs; private static final int UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX = (20 * 3600 * 1000); // 20 hours private static final int MUSIC_ACTIVE_POLL_PERIOD_MS = 60000; // 1 minute polling interval
Поле mMusicActiveMs содержит число миллисекунд, прослушанных пользователем на небезопасной громкости со времени последнего подтверждения диалога. Начальное значение загружается из переменной Settings.Secure.UNSAFE_VOLUME_MUSIC_ACTIVE_MS . В эту же переменную каждую минуту записывается новое значение mMusicActiveMs.
Также есть поле mSafeMediaVolumeState , оно содержит текущее состояние системы safe listening:
- DISABLED : отключена
- ACTIVE : включена, и при этом лимит прослушивания достигнут, а значит нельзя разрешать пользователю увеличивать громкость, пока он не согласится с предупреждением
- INACTIVE : включена, лимит пока не достигнут
// mSafeMediaVolumeState indicates whether the media volume is limited over headphones. // It is SAFE_MEDIA_VOLUME_NOT_CONFIGURED at boot time until a network service is connected // or the configure time is elapsed. It is then set to SAFE_MEDIA_VOLUME_ACTIVE or // SAFE_MEDIA_VOLUME_DISABLED according to country option. If not SAFE_MEDIA_VOLUME_DISABLED, it // can be set to SAFE_MEDIA_VOLUME_INACTIVE by calling AudioService.disableSafeMediaVolume() // (when user opts out). private static final int SAFE_MEDIA_VOLUME_NOT_CONFIGURED = 0; private static final int SAFE_MEDIA_VOLUME_DISABLED = 1; private static final int SAFE_MEDIA_VOLUME_INACTIVE = 2; // confirmed private static final int SAFE_MEDIA_VOLUME_ACTIVE = 3; // unconfirmed private Integer mSafeMediaVolumeState;
Метод проверки превышения лимита выглядит так:
private void onCheckMusicActive(String caller) < synchronized (mSafeMediaVolumeState) < if (mSafeMediaVolumeState == SAFE_MEDIA_VOLUME_INACTIVE) < int device = getDeviceForStream(AudioSystem.STREAM_MUSIC); if ((device sendMsg(mAudioHandler, MSG_CHECK_MUSIC_ACTIVE, SENDMSG_REPLACE, 0, 0, caller, MUSIC_ACTIVE_POLL_PERIOD_MS); int index = mStreamStates[AudioSystem.STREAM_MUSIC].getIndex(device); if (AudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC, 0) (index >safeMediaVolumeIndex(device))) < // Approximate cumulative active music time mMusicActiveMs += MUSIC_ACTIVE_POLL_PERIOD_MS; if (mMusicActiveMs >UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX) < setSafeMediaVolumeEnabled(true, caller); mMusicActiveMs = 0; >saveMusicActiveMs(); > > > > >
Как отключить предупреждение
Чтобы выключить safe listening, нужно добиться того, чтобы переменной mSafeMediaVolumeState на этапе конфигурации было присвоено значение DISABLED .
Посмотрим, где изначально задаётся значение:
private void onConfigureSafeVolume(boolean force, String caller) < . boolean safeMediaVolumeEnabled = SystemProperties.getBoolean(«audio.safemedia.force», false) || mContext.getResources().getBoolean( com.android.internal.R.bool.config_safe_media_volume_enabled); boolean safeMediaVolumeBypass = SystemProperties.getBoolean(«audio.safemedia.bypass», false); int persistedState; if (safeMediaVolumeEnabled !safeMediaVolumeBypass) < persistedState = SAFE_MEDIA_VOLUME_ACTIVE; /* Ещё код, присваивающий mSafeMediaVolumeState значение либо ACTIVE, либо INACTIVE */ . >else
Видим, что помимо значения ресурса R.bool.config_safe_media_volume_enabled , есть два свойства, позволяющих включать/выключать систему safe listening: audio.safemedia.force и audio.safemedia.bypass.
Чтобы отключить предупреждение, нужно установить значение audio.safemedia.bypass=true в файле system/build.properties. Но для этого нужны root-права. Если их нет, то нужно разбираться дальше и искать другой способ.
Как отключить предупреждение без root
Давайте посмотрим, что происходит при закрытии диалога с предупреждением по нажатию ОК, и попробуем это воспроизвести:
Вызывается метод disableSafeMediaVolume у инстанса AudioManager .
val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager val getDeclaredMethod = Class::class.java.getDeclaredMethod(«getDeclaredMethod», String::class.java, arrayOf>()::class.java) val disableSafeMediaVolumeMethod = getDeclaredMethod.invoke(AudioManager::class.java, «disableSafeMediaVolume», arrayOf>()) as Method disableSafeMediaVolumeMethod.invoke(audioManager)
Вызов заканчивается исключением
java.lang.SecurityException: Only SystemUI can disable the safe media volume: Neither user 10307 nor current process has android.permission.STATUS_BAR_SERVICE.
Разрешение STATUS_BAR_SERVICE имеет protectionLevel=«signature|privileged», получить его не получится.
Что ж, тогда попробуем так. Мы будем следить за переменной Settings.Secure.UNSAFE_VOLUME_MUSIC_ACTIVE_MS , в которую периодически сохраняется текущее значение mMusicActiveMs . Когда значение начнёт приближаться к 20 часам, будем его сбрасывать. Затем нужно будет сделать так, чтобы AudioService прочитал новое значение из настроек.
Прочитать значение Settings.Secure.UNSAFE_VOLUME_MUSIC_ACTIVE_MS можно так:
val unsafeMs = Settings.Secure.getInt(contentResolver, «unsafe_volume_music_active_ms»)
То же самое, используя adb:
adb shell settings get secure unsafe_volume_music_active_ms
А чтобы записать значение, приложению потребуется разрешение android.permission.WRITE_SECURE_SETTINGS .
Оно имеет protectionLevel=«signature|privileged|development», а значит его можно выдать приложению используя adb:
adb shell pm grant com.example.app android.permission.WRITE_SECURE_SETTINGS
Само значение записать можно так:
Settings.Secure.putInt(contentResolver, «unsafe_volume_music_active_ms» , 1)
То же самое можно сделать с помощью adb:
adb shell settings put secure unsafe_volume_music_active_ms 1
Сбрасывать лучше в 1, как это сделано в AudioManager, а не в 0. Так как 0 соответствует состоянию ACTIVE.
Теперь нужно, чтобы AudioService прочитал новое значение, и обновил значение локальной переменной mMusicActiveMs .
Есть подходящий метод в AudioManager.java
Он инициирует вызов метода readAudioSettings в AudioService , где происходит загрузка mMusicActiveMs из настроек.
private void readAudioSettings(boolean userSwitch) < . synchronized (mSafeMediaVolumeStateLock) < mMusicActiveMs = MathUtils.constrain(Settings.Secure.getIntForUser(mContentResolver, Settings.Secure.UNSAFE_VOLUME_MUSIC_ACTIVE_MS, 0, UserHandle.USER_CURRENT), 0, UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX); if (mSafeMediaVolumeState == SAFE_MEDIA_VOLUME_ACTIVE) < enforceSafeMediaVolume(TAG); >>
Остаётся один способ заставить AudioService прочитать новое значение — его перезапуск. Просто так перезапустить системный сервис нельзя. Нужно или перезагрузить устройство, или переключиться на другого пользователя, а затем вернуться обратно.
Теперь настало время проверить теорию.
Устанавливаем unsafe_volume_music_active_ms = 71 990 000 (останется 10 секунд, в течение которых можно прослушивать музыку на высокой громкости)
adb shell settings put secure unsafe_volume_music_active_ms 71990000
Перезапускаем устройство (можно вместо этого переключиться на другого пользователя, а потом вернуться):
adb reboot
Подключаем наушники, включаем музыку погромче. В течение минуты появляется диалог.
Теперь повторяем те же действия, но присваиваем unsafe_volume_music_active_ms = 1. Включаем музыку, ждём минуту. Диалог не появляется.
Итоги
Чтобы отключить предупреждение, можно сделать следующее:
При наличии root-прав
Установить значение audio.safemedia.bypass=true в файле system/build.properties
Без root-прав
Нужно следить за значением Settings.Secure.UNSAFE_VOLUME_MUSIC_ACTIVE_MS , и не давать ему подниматься выше 72 000 000 (20 часов). После сброса значения нужно перезапускать устройство (или переключаться на другого пользователя, а затем возвращаться обратно).
Я написала код простого приложения, которое делает эту работу, и напоминает о необходимости перезагрузить устройство/перелогиниться.
Обновление
Производители устройств могут вносить изменения в код платформы, и, судя по комментариям, некоторые из них смягчают дефолтное поведение. Например, предупреждение может появиться один раз, и больше не возникать до следующей перезагрузки.
Источник: habr.com
Как убрать ограничение громкости на Android
Некоторые Android-смартфоны поставляются со стандартным ограничителем громкости, который, как следует из названия, ограничивает максимальный уровень громкости. При активации невозможно увеличить громкость наушников сверх этого предела.
Длительное прослушивание музыки может быть опасным для слуха
В последние годы защита слуха стала приоритетной задачей общественного здравоохранения. Исследования, проведенные в 2004 году, показали, что длительное прослушивание музыки на большой громкости представляет опасность для слуха.
В результате правительство ввело новые стандарты для защиты слуха пользователей смартфонов и MP3-плееров. В частности, производители телефонов были обязаны уменьшить максимальный объем своих устройств.
Выходная звуковая мощность MP3-плееров и других музыкальных устройств не должна превышать 100 дБ(А). Кроме того, представители производителей электронных продуктов обязались установить уровень громкости по умолчанию при включении устройств для властей Брюсселя. Этот порог был установлен на уровне 85 децибел со взвешиванием или дБ(А).
Но это не все. Когда пользователь хочет увеличить громкость прослушивания выше этого порога, автоматически отображается предупреждающее сообщение. Возможно, вы уже видели это на экране своего смартфона: длительное прослушивание на большой громкости может повредить слух.
Есть решение, как отключить ограничитель громкости на Android-смартфоне.
Удалить ограничение громкости на Android
Как объяснялось ранее, смартфоны теперь ограничены 100 децибелами. Помимо этого устройства некоторые производители, в том числе Samsung, оснащают свои телефоны ограничителем громкости, позволяющим блокировать звук ниже порога в 100 децибел.
Вы можете уменьшить до 70% максимальный объем, который фактически может воспроизвести ваше устройство. Но будьте осторожны, иногда эта функция активирована по умолчанию. Если вы обнаружите, что звук вашего смартфона слишком тихий, вам может потребоваться отключить это ограничение.
- Откройте настройки вашего телефона Android
- Нажмите на раздел звуков и вибраций
- Прокрутите окно вниз и нажмите на громкость
- В новом окне вы увидите все ползунки для регулировки громкости вашего смартфона (мультимедийный контент, будильник, звонок)
- Нажмите кнопку меню в правом верхнем углу (3 точки)
- Нажмите на переключатель, чтобы отключить ограничитель громкости.
- Если переключатель синий, это означает, что функция активна.
- Нажав на PIN-код, можно создать пароль для защиты ваших настроек. Эта опция особенно полезна для защиты слуха ваших детей.
Будьте осторожны, чтобы не потерять этот PIN-код. Если вы его забудете, вы не сможете изменить настройки ограничителя громкости на своем телефоне. После этого у вас не будет другого выбора, кроме как перезагрузить устройство и удалить все свои данные, чтобы удалить этот пароль.
Небольшое, но важное замечание: эта статья не предназначена для того, чтобы показать вам, как разблокировать максимальную громкость вашего телефона выше 100 децибел. Он только показывает вам, как активировать или деактивировать ограничитель громкости на вашем Samsung Galaxy.
Обратите внимание, что вы можете найти в Интернете несколько советов или приложений для обхода этого ограничения. Однако будьте осторожны, использование этих инструментов может быть опасным и привести к необратимой потере слуха.
Источник: spnmedia.ru