何故、こんな事を考えているの?と不思議がる人もいるかと思いますが質問させてください。
Androidアプリを作っています。
少々カスタマイズしたAndroid機器で、音量変更ボタンに”ある機能”を同時起動するようにしています。そして、アプリ側から本体の音量変更ボタンを押した(音量up)状態と同じ挙動をさせたいと思っています。
音量を設定するには、AudioManagerクラスのsetStreamVolumeメソッドがありますが、音量変更のハードボタンを押して読み出されるイベントと同じ事をさせるには、どうしたらいいのでしょうか?
何卒よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>このonKeyDownイベント自体をアプリから発生させる事はできないのでしょうか?
イベントだけを発生させるのですか?
こういうことですか?
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_VOLUME_DOWN);
dispatchKeyEvent(event);
Activityでこんな具合にKeyEventを作成してdispatchKeyEventすれば、イベントをディスパッチできます。そういうことでしょうか。
この回答への補足
>イベントだけを発生させるのですか?
そうです。
やってみます。貴重な情報です。
結果はまた報告します。
ありがとうございました。
トライしてみましたができませんでした。
そもそもの音量マークも出ませんでした。
もし、何かヒントになることがあれば是非お願いします。
No.1
- 回答日時:
ボリュームボタンを押したときの処理を実装したい、ということでしょうか。
ハードウェアキーを押したときの処理というのは、ViewのonKeyDown/onKeyUpを利用して行えます。メソッド内で、発生したイベントのkeyCodeがKEYCODE_VOLUME_UP/KEYCODE_VOLUME_DOWNならば、ボリュームのアップ・ダウンのキーが押されたことがわかります。こんな感じですね。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
// ここでボリュームダウンの処理
}
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
// ここでボリュームアップの処理
}
return super.onKeyDown(keyCode, event);
}
この回答への補足
ご回答ありがとうございます。
しかし、ハードキーを押されたことを検知する事を行いたいわけではなく、このonKeyDownイベント自体をアプリから発生させる事はできないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Android(アンドロイド) Androidスマホの買い替えについて教えてください。 現在OPPOReno3A使用です。 買い替え 3 2023/02/11 22:25
- Android(アンドロイド) AQUOS sense6sの物理ボタン(アシスタントキー)に再生・一時停止を割り当てる方法 2 2022/08/09 00:37
- その他(スマホアプリ・スマホゲーム) Androidです。YouTubeで音楽を聴く時スマホの設定の1番小さい音量より、更に下げるアプリは 2 2022/08/02 10:37
- カラオケ DAMカラオケAIの機種で、Ai用のマイクです。 マイクの電源の上にDAMと書いたボタンがあり、 そ 1 2022/06/14 17:36
- ノートパソコン PCで音量調節ボタンを押しても「現在の音量がいくつか」が表示されません。 2 2023/03/18 12:10
- Android(アンドロイド) Android端末のAppleIDを変更したい Androidのスマホ(Xperia)にAppleM 3 2023/04/03 11:50
- Windows 10 Windows10 の設定?について (長文ですがよろしくお願いします)m(_ _)m 3 2022/05/14 12:22
- タブレット タブレットの起動完了音があまりにも大きいのですが・・・ 5 2023/08/05 10:52
- スピーカー・コンポ・ステレオ pcとSwitchでスピーカーを使うときについて三つ質問があります 4 2023/04/03 23:58
- iPad iPadで、音量ボタンをちょっと長押ししたら… 1 2022/04/26 07:09
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tryの終了
-
Javaプログラムからポップアッ...
-
ExcelVBA で文字列の特定の文字...
-
Thread.sleep()はすべてのスレ...
-
JavaScriptからJAVAクラスを呼...
-
数値の定数を付ける時
-
VBScriptでPing
-
doGetとdoPostの違い
-
JAVAにおける画像のJPEG保存の...
-
CPU使用率が100%になり特定のプ...
-
javaのプログラムが止まる
-
EXCELマクロ Workbook_BeforeC...
-
Javaアプリケーション実行の返...
-
チェックボックスの入力チェッ...
-
XMLHttpRequestのsendメソッド
-
SwingUtilities.invokeLater(ne...
-
スレッドとプロセスの違い
-
文字列の整形
-
バッチ処理をJavaで
-
JSPで「処理中」をブラウザに表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
doGetとdoPostの違い
-
Javaプログラムからポップアッ...
-
SwingUtilities.invokeLater(ne...
-
Javaでのデバッグコード削除
-
Tomcat高負荷時の設定について
-
JavaScriptからJAVAクラスを呼...
-
データ未入力時のエラー処理が...
-
アコーディオンメニューをアン...
-
ブラウザを閉じた後のサーバ側...
-
[Java] while(true)の意味
-
数値の定数を付ける時
-
Javaアプリケーション実行の返...
-
ラジオボタンの選択判定
-
onBlurとonFocusの処理順序につ...
-
スレッド1とスレッド2を交互に...
-
WPF C#でF10のイベント取得方法...
-
flush()メソッドについて・・・
-
ExcelVBA で文字列の特定の文字...
-
無限ループをわざと作って時計...
おすすめ情報