2

トグルを見た後、振動を有効または無効にする小さなトグルを作成しました。これは、サイレントモードでのみ振動を無効にします。そのために、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
}
4

1 に答える 1

1

Ok。私は問題を抱えています。のような通知をプッシュするのを忘れていました

notify_post("com.apple.springboard.ring-vibrate.changed");

この通知は、ターミナルの「notificationWatcher」コマンドで確認できます。

于 2013-02-11T22:05:55.227 に答える