2013-10-11 14 views
7

Chciałbym, aby mój iPhone wibrował, gdy jest w trybie cichym, nawet gdy jest włączony w ustawieniach. Chcę to zrobić programowo z aplikacji. To jest dla mnie, więc mogę użyć prywatnego API. Czy istnieje api, które zarządzają dźwiękami w Ustawieniach? Czy znasz jakieś rozwiązanie?Wyłącza iOS wibruje cicho programowo [Private API]

Dziękuję

Flo

Odpowiedz

1

myślę poniższy kod daje rade. Musisz go jednak gdzieś wyzwolić (nie wiesz, czy chcesz go uruchomić za pomocą przycisku, czy z poziomu aplikacji).

NSString *sbPath = @"/var/mobile/Library/Preferences/com.apple.springboard.plist"; 
NSMutableDictionary *sbDict = [[NSMutableDictionary alloc] initWithContentsOfFile:sbPath]; 
[sbDict setValue:[NSNumber numberWithBool:NO] forKey:@"silent-vibrate"]; 
[sbDict writeToFile:filePath atomically: YES]; 
notify_post("com.apple.SpringBoard/Prefs"); 

nie próbował go samodzielnie, ale znalazłem coś takiego, czego szukasz w Smartvibrate uszczypnąć. Spowoduje to zmianę parametru ustawień, więc powinieneś go zmienić z powrotem po zakończeniu aplikacji.

Nadzieję, że pomaga!

0

Aktualizacja dla iOS 8:

NSMutableDictionary *dict; BOOL newState = NO; 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
dict = [[defaults persistentDomainForName:@"com.apple.springboard"] mutableCopy] ?:   [[NSMutableDictionary alloc] init]; 
NSNumber *value = [NSNumber numberWithBool:newState]; 
[dict setValue:value forKey:@"ring-vibrate"]; 
[dict setValue:value forKey:@"silent-vibrate"]; 
[defaults setPersistentDomain:dict forName:@"com.apple.springboard"]; 
notify_post("com.apple.springboard.ring-vibrate.changed"); 
notify_post("com.apple.springboard.silent-vibrate.changed"); 
+1

otrzymuję "implicit deklarację funkcji 'notify_post' jest nieprawidłowa w C99" kiedy próbuje to w Xcode 6.2 (Swift projektu z Pomostowych nagłówek Objective-C) EDIT: również w C obj-projektu . – vrwim

+0

Czy to nadal działa? Nie mogę tego zrobić – Jan

Powiązane problemy