#android
#Android
Вопрос:
В настоящее время я использую разрешение READ_PHONE_STATE в Android, чтобы приостановить мой медиаплеер при поступлении вызова и возобновить воспроизведение по окончании вызова. Разрешение, похоже, пугает многих людей, поэтому мне было интересно, есть ли альтернатива перехватыванию начала и окончания телефонного звонка без него. Любая помощь приветствуется. Спасибо!
Комментарии:
1. Я думаю, что поддержка audio focus должна справиться с этим, хотя я не экспериментировал с этой частью SDK.
2. Спасибо. Я рассмотрю это.
3. Это сработало! Если вы добавите это в качестве ответа, я приму его. Спасибо!
Ответ №1:
Если вы хотите настроить свой аудиовыход в ответ на что-то другое, желающее выполнить аудиовыход (например, входящий телефонный звонок), ознакомьтесь с поддержкой Android audio focus. READ_PHONE_STATE
, как уже отмечалось, это немного пугающее разрешение. Более того, он имеет дело только с телефонными звонками, а не с другими вещами, для которых может потребоваться такая же возможность (например, VOIP-звонки, поскольку AFAIK, которые не связаны с READ_PHONE_STATE
включенными функциями).
Ответ №2:
К сожалению, аудиофокус не заменяет READ_PHONE_STATE . Мое приложение должно использовать и то, и другое. Стандартное приложение для телефона на моем Galaxy S3 I9300 / Android 4.3, похоже, вообще не запрашивает фокусировку звука. Класс TelephonyManager предоставляет вам способ определения окончания телефонного вызова (путем отправки обновления состояния CALL_STATE_IDLE). AudioManager, похоже, не делает ничего подобного, так что даже если бы можно было использовать audio focus, это было бы не так полезно. И, судя по тому, что я вижу в документации, похоже, что нет более узкого разрешения, чем READ_PHONE_STATE, которое позволило бы приложению считывать состояние телефона, но не информацию о вызове. Если я ошибаюсь в чем-то из этого, пожалуйста, поправьте меня.
Ответ №3:
К сожалению, аудиофокус не заменяет READ_PHONE_STATE . Мое приложение должно использовать и то, и другое. Стандартное приложение для телефона на моем Galaxy S3 I9300 / Android 4.3, похоже, вообще не запрашивает фокусировку звука. Класс TelephonyManager предоставляет вам способ определения окончания телефонного вызова (путем отправки обновления состояния CALL_STATE_IDLE). AudioManager, похоже, не делает ничего подобного, так что даже если бы можно было использовать audio focus, это было бы не так полезно. И, судя по тому, что я вижу в документации, похоже, что нет более узкого разрешения, чем READ_PHONE_STATE, которое позволило бы приложению считывать состояние телефона, но не информацию о вызове. Если я ошибаюсь в чем-то из этого, пожалуйста, поправьте меня.