2013-10-11 18 views
7

我想保持我的iPhone從振動時,它在靜音模式,即使是在設置。我想從應用程序中以編程方式執行此操作。這是給我的,所以我可以使用私人API。是否有管理設置中的聲音的api?你知道任何解決方案嗎?的iOS關掉震動靜音編程[私有API]

謝謝

弗洛

回答

1

我認爲下面的代碼可以做的伎倆。你需要從某個地方觸發它(不知道你是否希望它被按下或從應用程序中觸發)。

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"); 

還沒有嘗試過自己,但發現像你在找什麼在Smartvibrate好辦法。這將更改設置參數,因此應該在應用程序完成時將其更改爲開。

希望有幫助!

0

更新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

我得到一個「功能的隱式聲明‘notify_post’是C99無效」在Xcode 6.2(與橋接報以Objective-C的斯威夫特項目)嘗試這個當編輯:也是一個OBJ-C項目。 – vrwim

+0

這仍然是爲你工作?我似乎無法完成這項工作 – Jan