Я знаю, что этот вопрос уже задавался довольно давно. И я прочитал все темы в stackoverflow.
Но нет удовлетворительного ответа на мою проблему.
Я хочу отключить звук моего iPhone под управлением iOS 5 программным способом. Многие скажут, что это невозможно с публичными структурами. Я знаю об этом. Приложение, которое я планирую написать, предназначено только для личного использования. Я не собираюсь продавать его через AppStore (пока?).
Мое исследование привело меня к выводу, что у меня может быть несколько способов программно отключить звук iPhone.
- Использовать приватные фреймворки
- Хук-функции или методы, которые воспроизводят звуки
- Замена звуков по умолчанию (например, мелодия звонка, MailSent, iMessage, usw ...)
Некоторые мысли к вышеупомянутым методам:
- Я выгрузил класс всех заголовков приватных фреймворков (в моей Xcode-Installation) и не нашел функций, которые (по названию их функций) указывают на требуемое поведение
- Я думаю, что это возможно, но я не знаю, какие функции нужно подключить. Поэтому было бы довольно много усилий, чтобы сделать эту работу (и я думаю, что я не хочу это делать)
- Если подумать еще раз, это может быть не лучшим решением. Может быть, вы можете изменить звуки. Но тогда телефон совсем не отключается (игры, YouTube, ...)
Я дал AVSystemController
шанс, используя методы changeActiveCategoryVolumeBy
и setVolumeTo
, но они не отключили звук моего телефона, но установили минимальную громкость звонка 0,06 (или что-то в этом роде).
Должен быть способ полностью отключить звук iPhone, RingToggle (приложение для джейлбрейка) делает это неплохо.
У кого-нибудь есть идеи, как это сделать?