<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.hotaka" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="4" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".ImageViewerActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> -- この一行を追加 <uses-permission android:name="android.permission.INTERNET"/> </manifest>
10月 052011
10月 042011
@Override public void onClick(View v) { // TODO Auto-generated method stub if(v == btnFileOpen ) { FileListDialog dialog = new FileListDialog(this); dialog.setDirectorySelect(false); dialog.setOnFileListDialogListener(new onFileListDialogListener() { @Override public void onClickFileList(File file) { if(file == null){ //not select }else{ //select file or directory //TextView txtinput = (TextView) findViewById( R.id.input_text_id); //txtinput.setText( file.getPath() ); readToFile( file.getPath() ) ; } } }); dialog.show("/", "select"); } }
10月 042011
コマンドプロンプトより
PC->Android
adb push sample.txt /sdcard/
Android->PC
adb pull /sdcard/sample.wav
10月 042011
public void readToFile( String fileName ) { // String fileName = Environment.getExternalStorageDirectory() // + "/sample.txt"; FileInputStream fis = null; try { TextView txtinput = (TextView) findViewById( R.id.input_text_id); fis = new FileInputStream(fileName); byte[] readBytes = new byte[fis.available()]; fis.read(readBytes); String readString = new String(readBytes); txtinput.setText( readString ); Log.v("readString", readString); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } }
9月 192011
DOSプロンプトより
adb shell
cd /data/data/パッケージ名/databases
ls
rm データベース名
9月 092011
Android アプリで画面を遷移するには、Intent を使用する。
起動させた画面(Activity)からの戻り値が不要な場合
Intent i = new Intent(getApplicationContext(),xxxx.class); startActivity(i);
第一引数はgetApplicationContext()で取得したContext型オブジェクトを、第二引数には、起動させるActivityのクラス名をセットします。
起動させたActivityからの戻り値が必要な場合
Intent i = new Intent(getApplicationContext(),xxxx.class); startActivityForResult(i, requestCode ); protected void onActivityResult(int requestCode, int resultCode, Intent data) { // 画面が終了したときの処理、requestCode には、startActivityForResult の第二引数が設定される }
第二引数は、起動させた画面(Activity)側が、戻り値を受け取る場合に、どの起動での戻り値かを識別させるコードになる。
9月 082011
キーコード一覧リスト
0 0x0000 KEYCODE_UNKNOWN 1 0x0001 KEYCODE_SOFT_LEFT 2 0x0002 KEYCODE_SOFT_RIGHT 3 0x0003 KEYCODE_HOME 4 0x0004 KEYCODE_BACK 5 0x0005 KEYCODE_CALL 6 0x0006 KEYCODE_ENDCALL 7 0x0007 KEYCODE_0 8 0x0008 KEYCODE_1 9 0x0009 KEYCODE_2 10 0x000A KEYCODE_3 11 0x000B KEYCODE_4 12 0x000C KEYCODE_5 13 0x000D KEYCODE_6 14 0x000E KEYCODE_7 15 0x000F KEYCODE_8 16 0x0010 KEYCODE_9 17 0x0011 KEYCODE_STAR 18 0x0012 KEYCODE_POUND 19 0x0013 KEYCODE_DPAD_UP // カーソル移動 20 0x0014 KEYCODE_DPAD_DOWN 21 0x0015 KEYCODE_DPAD_LEFT 22 0x0016 KEYCODE_DPAD_RIGHT 23 0x0017 KEYCODE_DPAD_CENTER 24 0x0018 KEYCODE_VOLUME_UP 25 0x0019 KEYCODE_VOLUME_DOWN 26 0x001A KEYCODE_POWER 27 0x001B KEYCODE_CAMERA 28 0x001C KEYCODE_CLEAR 29 0x001D KEYCODE_A 30 0x001E KEYCODE_B 31 0x001F KEYCODE_C 32 0x0020 KEYCODE_D 33 0x0021 KEYCODE_E 34 0x0022 KEYCODE_F 35 0x0023 KEYCODE_G 36 0x0024 KEYCODE_H 37 0x0025 KEYCODE_I 38 0x0026 KEYCODE_J 39 0x0027 KEYCODE_K 40 0x0028 KEYCODE_L 41 0x0029 KEYCODE_M 42 0x002A KEYCODE_N 43 0x002B KEYCODE_O 44 0x002C KEYCODE_P 45 0x002D KEYCODE_Q 46 0x002E KEYCODE_R 47 0x002F KEYCODE_S 48 0x0030 KEYCODE_T 49 0x0031 KEYCODE_U 50 0x0032 KEYCODE_V 51 0x0033 KEYCODE_W 52 0x0034 KEYCODE_X 53 0x0035 KEYCODE_Y 54 0x0036 KEYCODE_Z 55 0x0037 KEYCODE_COMMA 56 0x0038 KEYCODE_PERIOD 57 0x0039 KEYCODE_ALT_LEFT 58 0x003A KEYCODE_ALT_RIGHT 59 0x003B KEYCODE_SHIFT_LEFT 60 0x003C KEYCODE_SHIFT_RIGHT 61 0x003D KEYCODE_TAB 62 0x003E KEYCODE_SPACE 63 0x003F KEYCODE_SYM 64 0x0040 KEYCODE_EXPLORER 65 0x0041 KEYCODE_ENVELOPE 66 0x0042 KEYCODE_ENTER 67 0x0043 KEYCODE_DEL // BackSpace 68 0x0044 KEYCODE_GRAVE 69 0x0045 KEYCODE_MINUS 70 0x0046 KEYCODE_EQUALS 71 0x0047 KEYCODE_LEFT_BRACKET 72 0x0048 KEYCODE_RIGHT_BRACKET 73 0x0049 KEYCODE_BACKSLASH 74 0x004A KEYCODE_SEMICOLON 75 0x004B KEYCODE_APOSTROPHE 76 0x004C KEYCODE_SLASH 77 0x004D KEYCODE_AT 78 0x004E KEYCODE_NUM 79 0x004F KEYCODE_HEADSETHOOK 80 0x0050 KEYCODE_FOCUS 81 0x0051 KEYCODE_PLUS 82 0x0052 KEYCODE_MENU 83 0x0053 KEYCODE_NOTIFICATION 84 0x0054 KEYCODE_SEARCH 85 0x0055 KEYCODE_MEDIA_PLAY_PAUSE 86 0x0056 KEYCODE_MEDIA_STOP 87 0x0057 KEYCODE_MEDIA_NEXT 88 0x0058 KEYCODE_MEDIA_PREVIOUS 89 0x0059 KEYCODE_MEDIA_REWIND 90 0x005A KEYCODE_MEDIA_FAST_FORWARD 91 0x005B KEYCODE_MUTE
9月 082011
@Override public boolean onKey(View v, int keyCode, KeyEvent event) { // ベントのハンドリングが完了した後ここで動作を止めるよう指示する場合は // true を返却します。 // イベントのハンドリングをしない場合、かつ(または) そのイベントを他の // キーイベントリスナに引き継がせるよう指示する場合は false を返却します。 return true ; }
KeyCode を 文字に変換する
char keyChar = (char)event.getUnicodeChar();
@Override public boolean onKey(View v, int keyCode, KeyEvent event) { char c = 0 ; boolean rtn = false ; if( event.getAction() == KeyEvent.ACTION_UP ) { // キーボードが Down から Up になった時は、ディフォルトの処理を行う。 return false; } if( ! event.isPrintingKey() ) { // 表示できないコードはディフォルトの処理を行う。 return false ; } char keyChar = (char)event.getUnicodeChar(); // ログを出力 Log.v("log", "Key ->" + keyChar ); // ベントのハンドリングが完了した後ここで動作を止めるよう指示する場合は // true を返却します。 // イベントのハンドリングをしない場合、かつ(または) そのイベントを他の // キーイベントリスナに引き継がせるよう指示する場合は false を返却します。 return true ; }
9月 082011
public boolean onKeyDown(int keyCode, KeyEvent event); public boolean onKeyUp(int keyCode, KeyEvent event);
onKeyメソッドは上記のonKeyDownのイベントとonKeyUpのイベントのどちらも受け取ることができる
以下のコードで区別する
@Override public boolean onKey(View v, int keyCode, KeyEvent event) { char c = 0 ; boolean rtn = false ; if( event.getAction() == KeyEvent.ACTION_UP ) { return false; } if( event.getAction() == KeyEvent.ACTION_DOWN ) { return false; } }