如何以编程方式更改“触觉反馈”等全局设置?

时间:2011-10-08 12:53:22

标签: android

如何以编程方式更改“触觉反馈”等全局设置? (手动,您可以在'声音和显示设置'中更改此设置)

更改,例如飞机模式可以使用以下代码完成:

private void setAirplaneMode(boolean bOn)
{
    Settings.System.putInt(getContentResolver(), 
                           Settings.System.AIRPLANE_MODE_ON, 
                           bOn ? 1 : 0); 

    Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
    intent.putExtra("state", bOn ? 1 : 0);
    sendBroadcast(intent);
}

然而,对于“触觉反馈”,这不起作用,因为我找不到相应的意图。

简单地

private void setHapticFeedbackMode(boolean bOn)
{
     Settings.System.putInt(getContentResolver(),
                            Settings.System.HAPTIC_FEEDBACK_ENABLED, 
                            bOn ? 1 : 0);
}

不起作用(我想真的需要广播一个意图)。

我对setHapticFeedbackEnabled之类的东西不感兴趣,因为这样你只会改变调用app / view处理触觉反馈的方式。 我正在寻找一种改变全球设置的方法。 (如果您手动检查/取消选中“声音和显示设置”中的复选框。)

2 个答案:

答案 0 :(得分:5)

Settings.System.putInt(getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED, 0);

这对我有用。您已在我假设的清单中设置了WRITE_SETTINGS权限。

答案 1 :(得分:0)

您是否尝试过使用VIBRATE_SETTING_CHANGEDRINGER_MODE_CHANGED?这些在SDK的platforms/android-x/data/broadcast_actions.txt下的广播意图列表中提供。