何故、こんな事を考えているの?と不思議がる人もいるかと思いますが質問させてください。
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ランキング
-
画面系イベントの優先度を上げたい
-
Javaでのデバッグコード削除
-
tryの終了
-
doGetとdoPostの違い
-
java(swing)で、登録ボタンを押...
-
Javaアプリケーション実行の返...
-
onBlurとonFocusの処理順序につ...
-
PHPでDB処理中にプログレスバー...
-
C# PostMessage BeginInvok
-
重い処理を行っているとGIFアニ...
-
JAVAからJAVASCRIPT関数を呼び出し
-
「UIスレッド」「マルチスレッ...
-
C#で別スレッドの終了を知りたい
-
WPF C#でF10のイベント取得方法...
-
巡回バッファを使用した生産者-...
-
重たい処理のタイムアウト強制終了
-
MediaPlayerコントロールのイベ...
-
ラジオボタンの選択判定
-
Linux上でのTomcatのServletプ...
-
javaのプログラムが止まる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
Tomcat高負荷時の設定について
-
onBlurとonFocusの処理順序につ...
-
Javaでのデバッグコード削除
-
ラジオボタンの選択判定
-
WPF C#でF10のイベント取得方法...
-
doGetとdoPostの違い
-
SwingUtilities.invokeLater(ne...
-
アコーディオンメニューをアン...
-
数値の定数を付ける時
-
switch文の中に、throws new Ex...
-
JAVAからJAVASCRIPT関数を呼び出し
-
再度、スレッドが実行中かどう...
-
ラベルの表示までが異常に遅い...
-
JavaScriptからJAVAクラスを呼...
-
javaのプログラムが止まる
-
Javaプログラムからポップアッ...
-
C#で別スレッドの終了を知りたい
-
vba Sleep関数について教えてく...
-
Tomcatのスレッドを破棄する方法
おすすめ情報