コードを使用してデバイスのドック設定を開く必要があります。検索しましたが、適切な解決策が得られませんでした。サムスンギャラクシーS-3では、設定 - >アクセサリを通過します。次のコードを試しましたが、うまくいきませんでした
startActivityForResult(new Intent(Settings.System.getString(getContentResolver(), DOCK_SETTING)), 0);
間違っている場合は訂正してください。ただし、これが機能しない理由 (および Android設定で適切なアクティビティ アクションを見つけることができなかった理由) は、アクセサリが Samsung によって提供されているように見えるためだと思います。ギャラクシー デバイス。したがって、標準の Android SDK では (まだ?) 見つけることができません。
現在、回避策を模索中ですので、解決策が見つかったらこの投稿を編集します。
編集: JoxTraex は、次の方法で設定を編集する方法を見つけたようです。
Settings.System.putInt(getContentResolver(), "dock_sounds_enabled", 1);
さらに、ユーザーがデバイスをドッキングしたときにこれらの設定を変更する必要がある場合は、 ACTION_DOCK_EVENTブロードキャストをリッスンするBroadcastReceiverを作成する必要があります。
設定を見て、プログラムで設定を構成することで、これを実現できました。
android.provider.Settings.System.putInt(getContentResolver(), "dock_sounds_enabled", 1);
次の許可が必要です。
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
上記のコードは、samsung s3 のドック サウンド設定を有効にする設定に書き込みます。でも; 単に記述するのではなく、設定が無効であり、有効にする必要があることをユーザーに伝え、ユーザーがダイアログを介して有効にすることを確認できるようにする必要があります。
別のメモとして、Samsung によって追加されたカスタム設定であるため、設定 -> アクセサリ画面に直接移動することはできないと思います。このアクションはAndroid SDK で提供されていないため、実際のアクションを導き出すには、または存在する場合でも時間がかかります。
そして、それを確認したい場合は、クエリしてください:
String where = "name = 'dock_sounds_enabled'";
Cursor c = getContentResolver().query(android.provider.Settings.System.CONTENT_URI, null, where, null, null);
ドック設定を構成するためのダイアログの応答を処理する方法の手順:
設定を取得します。0 の場合は、ダイアログを表示して有効にし、そうでない場合は処理を続行します
ダイアログが表示され、ユーザーがダイアログを有効にすることを確認したら、次のようにします。
確認: ドック サウンドに 1 を入力し、ダイアログを閉じます。