Browsing articles tagged with " dispatchKeyEvent"

HoneyComb端末にゲームコントローラを接続する

7月 31, 2011   //   by UpDown-G   //   Android, アプリケーション  //  No Comments

Android3.1(HoneyComb)から、AndroidはUSB Hostに対応しました。
USB Hostに対応したことで、XboxやPS3などのコントローラを接続し、
Applicationの制御に使用することができるようになりました。

※USBコントローラの接続には、USBホストケーブルが必要になります。

アマゾンリンク

Techboosterでは、InputDevice系統の記事として、以下記事を過去に公開しています。
本エントリでも同様に参考になるので、ご参考に。

Read more >>

ハードウェアキーを取得する

4月 27, 2011   //   by @mhidaka   //   デバイス, ユーザインターフェース  //  No Comments

今回は、Androidで定義されているキーの一覧を紹介します。Androidのハードウェアキーは、おおむね4つ、メニューキー、検索キー、戻るキー(Backキー)、ホームキー(HOMEキー)が有名です。
Android端末でのハードウェアキーの並びにガイドラインが無く自由なことから、キー配置はプラットフォームの「分断」の象徴として揶揄されています。
しかし、キーの種類に目を向けると(KeyEventで定義されているものは)、Androidの「自由」を象徴するように沢山の種類があります。

KeyEventで定義されているKeyCodeマクロは大まかに以下の6つに分類できます。

  • 専用キー(MENU/Search/Back/Homeなど)
  • ゲームパッド用ボタン
  • QWERTYキー
  • 十字キー
  • GoogleTVのようなテレビリモコン用のハードウェアキー
  • 音楽/動画の再生用のメディア制御ハードウェアキー

ゲームパッド用ボタンは、ゲーム用途を意識したAndroid端末(XperiaPlayなど)を考えており、今後のトレンドに備えたKeyCodeといえます。
参考:http://developer.android.com/reference/android/view/KeyEvent.html
※一般的なQWERTYキーについては説明を省略しています。上記KeyEventを参照してください。

サンプルコード:キーの取得方法

基本となるサンプルコードは以下の通りです。

    @Override
    public boolean dispatchKeyEvent(KeyEvent e) {

       // DOWNとUPが取得できるのでログの2重表示防止のためif
       if (e.getAction() == KeyEvent.ACTION_DOWN) {
    	   //キーコード表示
    	   Log.d("KeyCode","KeyCode:"+ e.getKeyCode());
       }

       return super.dispatchKeyEvent(e);
    }

Activity#dispatchKeyEventでキーのPushとReleaseを取得できます。

KeyEvent#getKeyCodeメソッドで取得したキーコードはKeyEvent.KEYCODE_BACKなど、KeyEventのマクロ定義と比較して判定してください。
TechBoosterではキー入力に関して、以下のような様々なテクニックを紹介しています。あわせてどうぞ。

 

代表的なハードウェアキー

代表的なハードウェアキーの一覧です。あまり使われていないキー(ヘッドセット等)も定義されています。またHOMEキーなど一部のハードウェアキーはアプリケーションで取得することができません。

ハードウェアキーのマクロ定義 概要
KEYCODE_APP_SWITCH アプリケーションの切り替え
KEYCODE_BACK バックキー
KEYCODE_CALL 通話キー
KEYCODE_CAMERA カメラ起動
KEYCODE_ENDCALL 終話キー
KEYCODE_ENVELOPE メール起動特殊キー
KEYCODE_EXPLORER ファイラ起動用特殊キー
KEYCODE_FOCUS カメラフォーカスキー
KEYCODE_HEADSETHOOK ヘッドセット割込キー
KEYCODE_HOME ホームキー
KEYCODE_MENU メニューキー
KEYCODE_POWER 電源キー
KEYCODE_SEARCH 検索キー
KEYCODE_SETTINGS 設定キー
KEYCODE_SWITCH_CHARSET 文字入力モード切替
KEYCODE_VOLUME_DOWN ボリュームDOWN
KEYCODE_VOLUME_MUTE ミュート
KEYCODE_VOLUME_UP ボリュームUP

以下、ゲームパッド、十字キー、メディア制御キー、テンキー、TVリモートなど特殊なキーコード一覧です。
Read more >>

戻るキー(Backキー)を無効にする

3月 31, 2011   //   by kkato   //   ユーザインターフェース  //  1 Comment

今回は特定のキーを無効にする方法を説明します。

実際のアプリケーション開発においては、「戻る(Back)キーを無効にしたい」という場面が出てくると思います。

Androidの標準の動きとしては戻るキーを押すと現在のActivityが終了します。

しかし、戻るキーを押された時にすぐにActivityを終了させずにデータ保存の有無に関する確認ダイアログを出したい場面や、ゲームであればゲーム中に誤ってキーを押してゲームが中断することを防ぐために完全にハードウェアキーを無効にした方がよいこともあります。

以前、キーイベントを取得するで紹介したサンプルコードを少し修正するだけで実現可能です。
それでは続きでサンプルコードを説明します。
Read more >>

キーイベントを取得する

10月 10, 2010   //   by kseto   //   デバイス  //  2 Comments

Androidでは上下左右キーや検索キーなどのキーを操作するとキーイベントと呼ばれる
イベントが発生します。Androidでキーを使ったアプリケーションを開発したい場合は
このキーイベントを取得し、その内容を判別することで任意の処理を行うようにします。

今日はこのキーイベントを取得する方法について説明したいと思います。

※サンプルコードで検出対象としているキーをバックキーから検索キーに変更しました。
また、記事の加筆修正を行いました。(2011/03/30)

詳しくは続きからご覧ください。

Read more >>

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です