Pracuję nad niestandardową klawiaturą i muszę odtwarzać dźwięk stuknięcia w klawisze, jeśli jest włączony w Ustawieniach. Dźwięk dotknięcia nie stanowi problemu, ale jak sprawdzić dźwięk klawiatury? Dzięki.Jak sprawdzić dźwięk kliknięcia klawiatury iPhone'a włączonego/wyłączonego w ustawieniach?
Odpowiedz
Jeśli chcesz mieć idealne rozwiązanie, należy dodać następujące lcode do listy aplikacja. W przeciwnym razie po pierwszym odczycie ustawienie jest buforowane, a jeśli użytkownik przełączy się na ustawienia, dokona zmian i przełączy się ponownie, powinniśmy ponownie przeczytać zapisaną w pamięci wartość. :)
- (void)applicationWillEnterForeground:(UIApplication *)application {
CFPreferencesAppSynchronize(CFSTR("/var/mobile/Library/Preferences/com.apple.preferences.sounds"));
Jeśli ktoś mi powie, jak skomentować tę stronę, naprawdę stałbym się bardziej pomocny.
Nie ma udokumentowanego sposobu sprawdzenia tego, ale jest to możliwe. Nie wiem, czy to naprawdę liczy się jako "prywatne API", więc bądź przygotowany na odrzucenie, jeśli użyjesz tej metody.
Ustawienia dźwięku kliknięcia klawiatury są przechowywane we wspólnym preferencji com.apple.preferences.sounds
. Więc można spróbować
return CFPreferencesGetAppBooleanValue(
CFSTR("keyboard"),
CFSTR("/var/mobile/Library/Preferences/com.apple.preferences.sounds"),
NULL);
(BTW: faktyczne wezwanie do gry „kliknięcie” dźwięk w UIKit jest [UIHardware _playSystemSound:1104];
)
Wywołanie CFPreferencesGetAppBooleanValue działa doskonale, ale oprogramowanie UIHardware nie jest dla mnie rozpoznawane (ani nigdzie w dokumentach). Zamiast tego dodałem framework AudioToolkit i nazwałem "AudioServicesPlaySystemSound (1104)" dla tego samego efektu. –
@ Chris: To dlatego, że UIHardware jest prywatną klasą. – kennytm
- 1. Wyłącz dźwięk kliknięcia przycisku w Androidzie
- 2. Jak sprawdzić, czy WKWebView odtwarza dźwięk?
- 3. Oficjalny sposób korzystania z dźwięków kliknięcia nowej klawiatury w iOS 10
- 4. Jak odtwarzać dźwięk kliknięcia przycisku systemowego na iPadzie?
- 5. Jak uzyskać stłumiony dźwięk klawiatury iPhone OS 3.1?
- 6. Czy mogę wyłączyć dźwięk przewijania UIPickerView?
- 7. AudioTrack - jak sprawdzić, kiedy dźwięk się zaczyna/kończy?
- 8. Jak przetestować dźwięk?
- 9. Jak sprawdzić, czy określony widok jest widoczny po wyświetleniu klawiatury?
- 10. Jak sprawdzić element CheckListBox za pomocą jednego kliknięcia?
- 11. Jak zatrzymać dźwięk w MATLAB?
- 12. Zapisywanie informacji o użytkowniku w ustawieniach aplikacji
- 13. Jak przechowywać listę obiektów w ustawieniach aplikacji
- 14. Jak uprościć zarządzanie aplikacjami w ustawieniach aplikacji?
- 15. Jak otworzyć aplikację w Ustawieniach iOS 11
- 16. Włączanie klawiatury ekranowej w symulatorze
- 17. Jak powstaje dźwięk sepii?
- 18. jQuery: Jak wczytujesz dźwięk?
- 19. Three.js jak wyciszyć dźwięk?
- 20. Używanie własnego wyliczenia w ustawieniach
- 21. Jak wyłączyć dźwięk kliknięcia, gdy zostanie naciśnięty element listview systemu Android/Java?
- 22. Jak odtwarzać dźwięk jak najszybciej?
- 23. Jak wykrywać zmiany w ramce klawiatury podczas interaktywnego odrzucania klawiatury?
- 24. iOS - Jak odczytać dźwięk ze strumienia i odtwarzać dźwięk
- 25. Jakie są identyfikatory dźwięków systemowych dla nowych kliknięć klawiatury w systemie iOS 10?
- 26. Jak uzyskać pozycję kliknięcia?
- 27. Jak nagrywać dźwięk w rozszerzeniu przeglądarki Chrome?
- 28. Jak odtwarzać dźwięk z biblioteki w AS3?
- 29. Jak uruchomić dźwięk po dźwięku w soundmanager2
- 30. Jak mogę odtwarzać dźwięk w WinForms?
Frustrująco, to nie działa na iOS 6.0.1. Moja aplikacja wydaje się buforować wartość ustawienia wybraną przy pierwszym ładowaniu aplikacji. Jeśli zmienię ustawienie i przełączy się z powrotem na moją aplikację, nie dostosuje się. Jeśli wymuszam zamknięcie aplikacji i zrestartuję, zmiana zostanie podjęta. Mam teraz dylemat: nie dostarczaj w ogóle kluczowych kliknięć na mojej niestandardowej klawiaturze lub żyj z błędem, że ustawienia zmieniają się, gdy moja aplikacja jest zawieszona, zostaną zignorowane. Co jest gorsze? –
Sprawdziłem 6.1.4, moja aplikacja zawsze otrzymuje obie wartości false z 'Boolean keyExistsAndHasValidFormat = false; wartość bool = CFPreferencesGetAppBooleanValue ( CFSTR ("klawiatura"), CFSTR ("/ var/mobile/Library/Preferences/com.apple.preferences.sounds"), & keyExistsAndHasValidFormat); 'Więc mój kod przestał grać kliknięcia dawno temu . Niech tak będzie, jeśli użytkownicy będą narzekać, skieruję ich prosto do Apple. Przegraliśmy walkę. – Hrissan