Как проверить включение/выключение звука клавиатуры клавиатуры iPhone в настройках?

Я работаю над пользовательской клавиатурой и должен играть звук нажатия клавиш, если он включен в настройках. Звук Tap не является проблемой, но как проверить, включен ли звук нажатия клавиш? Спасибо.

Ответ 1

Если вы хотите сделать идеальное решение, вы должны добавить следующий код lcode в свое приложение. В противном случае после первого чтения настройка будет кеширована, и если пользователь переключится на настройки, изменит настройки и вернет обратно, мы должны перечитать кешированное значение.:)

- (void)applicationWillEnterForeground:(UIApplication *)application {
CFPreferencesAppSynchronize(CFSTR("/var/mobile/Library/Preferences/com.apple.preferences.sounds"));

Если кто-то подскажет мне, как комментировать этот сайт, я действительно стал бы более полезным.

Ответ 2

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

Настройки звука нажатия клавиш сохраняются в общей настройке com.apple.preferences.sounds. Поэтому вы можете попробовать

return CFPreferencesGetAppBooleanValue(
        CFSTR("keyboard"),
        CFSTR("/var/mobile/Library/Preferences/com.apple.preferences.sounds"),
        NULL);

(BTW: фактический вызов для воспроизведения звука "click" в UIKit равен [UIHardware _playSystemSound:1104];)