我在处理 Android 中的系统设置时遇到问题。长话短说,我们正在开发一个应用程序,该应用程序使用不同的输入设置进行一些用户实验。我们需要通过不同的实验以编程方式启用和禁用按键声音和按键振动。
我已经探索了一些选项,但如果可能的话,我想避免实际设置监听器并手动振动。
我已授予自己修改系统设置的权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
以下是我用来修改系统设置的代码:
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.HAPTIC_FEEDBACK_ENABLED,
1);
但是,这些更改不会反映在系统设置中。
以下代码正在运行,验证了模拟器上的系统设置窗口中的设置实际上发生了变化。
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.TEXT_AUTO_PUNCTUATE,
0);
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.TEXT_AUTO_REPLACE,
0);
我还尝试在视图上设置特定设置,例如:
EditText inputArea = (EditText) findViewById(R.id.editText1);
inputArea.setHapticFeedbackEnabled(true);
inputArea.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING | HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
inputArea.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING | HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
我已经把它推到手机上,它也没有任何影响。
我需要的是一种在实验过程中以编程方式启用/禁用按键点击时的触觉反馈和声音的方法。我搜索了堆栈溢出,但找不到任何有用的东西。
任何人都知道任何技巧,或者我是否必须让自己使用按键处理程序并手动振动手机?
谢谢!