如何在设置中检查iPhone键盘Klick声音的开/关?

New*_*bee 12 iphone

我正在使用自定义键盘,如果在"设置"中启用了按键,则需要为按键播放按键音.点击声音不是问题,但如何检查是否启用了键盘声音?谢谢.

ken*_*ytm 17

没有记录的方法来检查这一点,但它是可能的.我不知道这是否真的算作"私有API",所以如果你使用这种方法,请准备拒绝.

键盘单击声音设置存储在共享com.apple.preferences.sounds首选项中.所以你可以试试

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

(顺便说一下:在UIKit中播放"点击"声音的实际调用是[UIHardware _playSystemSound:1104];)

  • CFPreferencesGetAppBooleanValue调用工作正常,但UIHardware无法识别(或文档中的任何位置).相反,我添加了AudioToolkit框架并调用了`AudioServicesPlaySystemSound(1104)`以获得相同的效果. (3认同)

Hri*_*san 4

如果您想做出完美的解决方案,您应该将以下 lcode 添加到您的应用程序中。否则,在第一次读取后,设置会被缓存,如果用户切换到设置,进行更改并切换回来,我们应该重新读取缓存的值。:)

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

如果有人告诉我如何在这个网站上发表评论,我真的会变得更有帮助。