iOS以编程方式关闭静音振动[私有API]

时间:2013-10-11 18:50:05

标签: ios settings iphone-privateapi vibrate

即使设置为ON,我也希望iPhone在静音模式下不会振动。我想通过App以编程方式进行。这对我来说,所以我可以使用私有API。是否有api管理设置中的声音?你知道任何解决方案吗?

谢谢,

弗洛

3 个答案:

答案 0 :(得分: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调整中找到了类似于你想要的东西。这将更改settings参数,因此您应该在应用程序完成时将其更改为on。

希望有所帮助!

答案 1 :(得分: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");

答案 2 :(得分:0)

更新@@ baptiste-truchot的回答(以及@vrwim关注的问题):

这需要

#include <notify.h>

在.h文件的顶部关联。

Apple doc's about notify.h