如何以编程方式更改“触觉反馈”等全局设置? (手动,您可以在'声音和显示设置'中更改此设置)
更改,例如飞机模式可以使用以下代码完成:
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处理触觉反馈的方式。
我正在寻找一种改变全球设置的方法。 (如果您手动检查/取消选中“声音和显示设置”中的复选框。)
答案 0 :(得分:5)
Settings.System.putInt(getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED, 0);
这对我有用。您已在我假设的清单中设置了WRITE_SETTINGS
权限。
答案 1 :(得分:0)
您是否尝试过使用VIBRATE_SETTING_CHANGED
或RINGER_MODE_CHANGED
?这些在SDK的platforms/android-x/data/broadcast_actions.txt
下的广播意图列表中提供。