トグルを見た後、振動を有効または無効にする小さなトグルを作成しました。これは、サイレントモードでのみ振動を無効にします。そのために、plist ファイルでブール値を変更しています。これは非常にうまく機能します。Settings.app で結果を確認することもできます。しかし、私の問題は、何も起こらないように振動することです。plistファイルの何かが変更されたが、リスプリングなしでiPhoneに伝えるにはどうすればよいですか?
私を助けてください。
ps: 私のコードを見たい場合は、ここに重要な部分をコピーして貼り付けました:
void setState(BOOL enable) // required; called when user presses toggle button
{
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/com.apple.springboard.plist"];
if (enable) // toggle is disabled, so enable it
{
[dict setObject:[NSNumber numberWithBool:YES] forKey:@"ring-vibrate"];
[dict setObject:[NSNumber numberWithBool:YES] forKey:@"silent-vibrate"];
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
else // toggle is enabled, so disable it
{
[dict setObject:[NSNumber numberWithBool:NO] forKey:@"ring-vibrate"];
[dict setObject:[NSNumber numberWithBool:NO] forKey:@"silent-vibrate"];
}
[dict writeToFile:@"/var/mobile/Library/Preferences/com.apple.springboard.plist" atomically:YES];
isToggleEnabled = enable; // for getStateFast() use
}