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);
これを電話にプッシュしましたが、そこにも影響はありません。
私が必要としているのは、実験中に触覚フィードバックとキークリック音をプログラムで有効/無効にする方法です。スタック オーバーフローを検索しましたが、有用なものが見つかりませんでした。
誰かがトリックを知っているか、キープレスハンドラーを使用して電話を手動で振動させる必要がありますか?
ありがとう!