2012年3月27日火曜日

中国製タブレットA70を買ってみた







カメラが2つあって、Bluetoothもある端末が欲しかったので買ってみた。
日本語には出来ないようです。
充電器のプラグも使えない。
動作は軽く問題ない
充電が出来ない?

Display: 7" 800*480 capacitive multi-touch
OS: Android2.3
CPU: MT6573 Dual Core 800MHz
Memory: Nand Flash:4GBit;DDR:2GBit
3G: GSM+WCDMA Dual SIM Dual Standby
Camera: Dual camera,front 0.3MP / Rear 2.0MP
GPS: built in GPS
Working time: 4-6hours
Wi-Fi 802.11b/g/n
speaker: Dual speakers
SIM card slot: dual SIM card slot-WCDMA+GSM
CPUMT6573 dual core(ARM11 650M+Modem ARM7 280M)
RAM512MB DDR2
ROM4GB (Maximum Support 32GB Micro sd card)
OSGoogle Android 2.3
Cameradual camera, face 0.3M, front 2.0M mega pixel, flashlight
WifiIEEE 802.11 b/g/n
GPSBuilt-in
BluetoothB/T 2.1 + EDR
3GDual SIM card, WCDMA+GSM
TVAnalog TV, Support NTSC/PAL TV-Out
FM RadioBuilt-in FM redio
Sensor3D G-sensor, Magnetic induction sensor, temperature sensor, Ambient light sensor
Battery4200mAh removable lithium ion battery
working time4-6 hours; standby time Longer
1/O ports1* 3.5mm stereo headphone jack
1*DC-in jack
2*SIM card
1*TF card
1*Mini USB slot
DISPLAY7 inch 800x480 pixel, 178° Viewing
5 points Multi touch capacitive screen
GameBuilt in PPC game, support PPC 3D games,JAVA,simulation game
AudioMP3,Stereo output,dual speakers
mp3,wav,ogg,amr,midi,support MP3 calling ring, dual loudspeaker output
VideoH.264 Encoder: baseline CIF @ 30fps/2mbps.
3GP,MP4,AVI,ASF,WMV,support AVI/MP4/3GP/ASF/RM,full screen broadcast,support fast forward, fast reverse/pause
PhotoJPEG, PNG, BMP, GIF etc.
Application softwareMSN, Skype, Gmail, Google map, ebook, ect
LanguageMulti Language
WeightNW: 420g; GW: 850g
Size19cm*12cm*1cm
Packingcolor box; 23*14*7cm
Accessories1 * Lithium battery
1 * User Manual
1 * USB transfer cable
1 * Earphone
1 * Screen Protector

2012年3月20日火曜日

eee pc を使ってwifiデバッグ



USB ケーブルでのつなげ方がわからないのでネット経由でデバッグする。
アンドロイド端末(eee pc)での設定
1.アプリケーションメニューの「提供元不明のアプリ」の許可にチェックを入れる。
2.開発メニューの「USBデバッグ」「スリープモードにしない」にチェックを入れる。
3.Dev Toolsアプリを起動してDevelopment SettingsメニューのWait for debuggerにチェックを入れる。

パソコン側の設定
実行->実行構成 でデバッグする端末を選べるようにしておく。
ターゲットタブで手動操作を選択する。

コマンドプロンプトを開く
android SDK の場所のplatform-tools で次のコマンドを打つ(パスを通していないので)
adb connect 192.168.24.68
IPアドレス(Android端末)の部分は私の環境の場合

実行ボタンを押す、
IPアドレスで設定した端末を選択する。

アプリが端末に送られる。

参考
IPアドレスは、Wi-Fi 設定画面から確認できる。
画面のスナップショットはDDMSから撮れる。

接続されているディバイス一覧を表示する場合
adb devises

接続されているディバイスの切断
adb disconnect IPアドレス

コマンドが長いのでバッチファイルを作ってダブルクリックで接続できるようにしておく

追記:
adb connect 192.168.24.68
上記コマンドを打つ前に
コマンドプロンプトで adb tcpip 5555 を実行する

offlineになった時の対処

E:\softNotInstall\android-sdks\platform-tools>adb devices
List of devices attached
0123456789ABCDEF        offline


E:\softNotInstall\android-sdks\platform-tools>adb kill-server

E:\softNotInstall\android-sdks\platform-tools>adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

E:\softNotInstall\android-sdks\platform-tools>adb devices
List of devices attached
0123456789ABCDEF        device

2012年3月18日日曜日

asus eee pc 4G にアンドロイドをインストール


eee pc のハードディスクにインストール

イメージのダウンロード先
Android-x86 - Porting Android to x86
android-x86-4.0-RC1-eeepc.isoをダウンロードしてきた。

ダウンロードしたイメージをUSBメモリに書き込む
USBからブート出来る様に
UNetbootin を使って書き込む。


起動時にF2キーを押す。

boot メニューを開く

Hard Disk Drives を選んでエンターキーを押す
1st Drive に USBメモリを選択する(USB:BUFFALO USB F1)
エスケープで戻る

Boot Device Priority を選んでエンターキーを押す
1st Boot Device で [USB:BUFFALO USB F1] を選ぶ
エスケープで戻る

exit で保存して終了
再起動

メッセージにしたがってインストール

Android バージョン 4.0.3がインストールされた。

インストールしても再起動したら、osが見つからないとメッセージが出る。
ブートローダを入れて同じ、
パーティション選択時にハードディスクをlinuxのイメージに変更してから、
インストールしたらブートローダが起動してアンドロイドを選択できた。

マーケット(Google Play)も利用できた。
Wifi も利用できた。
ブラウザでホームページも見れた。
キーボードのレイアウトが違うようだ。

これで、使い道の無かったeee pcも少しは役立ちそうです。

2012年3月10日土曜日

カメラ映像の録音・録画:Android

package com.camera_test0;

import java.io.File;

import java.io.IOException;
import java.util.List;

import android.os.Environment;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Size;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup.LayoutParams;

public class CameraTest0Activity extends Activity {
 /** Called when the activity is first created. */
 private Camera myCamera;
 private SurfaceView mySurfaceView;
 private boolean isRecording;
 private MediaRecorder mediaRecorder;
private SurfaceHolder v_holder;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  mySurfaceView = (SurfaceView) findViewById(R.id.surfaceView1);
  SurfaceHolder holder = mySurfaceView.getHolder();
  holder.addCallback(mSurfaceListener);
  holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

  myCamera = getCameraInstance();//

 }

 private SurfaceHolder.Callback mSurfaceListener = new SurfaceHolder.Callback() {

  public void surfaceCreated(SurfaceHolder holder) {
   // TODO Auto-generated method stub
   
   try {
    myCamera.setPreviewDisplay(holder);
   } catch (Exception e) {
    e.printStackTrace();
   }
  }

  public void surfaceDestroyed(SurfaceHolder holder) {
   // TODO Auto-generated method stub
   //myCamera.release();
   //myCamera = null;
   
   myCamera.setPreviewCallback(null);
   myCamera.stopPreview();
   myCamera.release();
   myCamera = null;
  }

  public void surfaceChanged(SurfaceHolder holder, int format, int width,
    int height) {
   // TODO Auto-generated method stub
   v_holder = holder; // SurfaceHolderを保存
   
   myCamera.stopPreview();
    Camera.Parameters parameters = myCamera.getParameters();
    
   List<Size> asizeSupport = parameters.getSupportedPreviewSizes();
   //一番小さいプレビューサイズを利用
   Size size = asizeSupport.get(asizeSupport.size() - 1);
   parameters.setPreviewSize(size.width,size.height);
   Log.d("size1", "w=" + String.valueOf(width) + "h=" + String.valueOf(height));// 
   Log.d("size2", "w=" + String.valueOf(size.width) + "h=" + String.valueOf(size.height));// 
   
   LayoutParams paramLayout;
   paramLayout = mySurfaceView.getLayoutParams();
   paramLayout.width = size.width;
   paramLayout.height = size.height;
   mySurfaceView.setLayoutParams(paramLayout);
      // camera.setDisplayOrientation(90);// カメラを回転
      
      //List<Camera.Size> size = parameters.getSupportedPreviewSizes();
    
      //Log.d("カメラのサイズ", "w=" + String.valueOf(size.get(0).width) + "h=" + String.valueOf(size.get(0).height));// 
      //parameters.setPreviewSize(size.get(0).width, size.get(0).height);
     // myCamera.setParameters(parameters);
      myCamera.startPreview();//
  }
 };


 public void click(View v) {
  // 録画中でなければ録画を開始
  if (!isRecording) {
   initializeVideoSettings(); // MediaRecorderの設定
   // myRecorder.start(); // 録画開始
   isRecording = true; // 録画中のフラグを立てる

   // 録画中であれば録画を停止
  } else {
   mediaRecorder.stop(); // 録画停止
   mediaRecorder.reset(); // 無いとmediarecorder went away with unhandled
         // events が発生
   mediaRecorder.release();//
   mediaRecorder = null;
   //myCamera.lock();
   //myCamera.release(); // release the camera for other applications
   //myCamera = null;
   isRecording = false; // 録画中のフラグを外す
   
   
  }
 }


 private void initializeVideoSettings() {
  // TODO 自動生成されたメソッド・スタブ
  try {
   //myCamera = getCameraInstance();
   mediaRecorder = new MediaRecorder();
   //mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
   //mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
   
   myCamera.unlock();
   mediaRecorder.setCamera( myCamera );
   
   mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); // 録画の入力ソースを指定
   mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
   
   mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // ファイルフォーマットを指定
   
   mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); // ビデオエンコーダを指定
   mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

   //CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
   //mediaRecorder.setProfile(profile);
   
   mediaRecorder.setVideoFrameRate(15); // 動画のフレームレートを指定
   mediaRecorder.setVideoSize(320, 240); // 動画のサイズを指定
   
   File folder = Environment.getExternalStorageDirectory();
   File file;

   file = File.createTempFile("sample20110603", ".mp4", folder);//

   //mFile = Environment.getExternalStorageDirectory().getAbsolutePath();

   mediaRecorder.setOutputFile(file.getAbsolutePath());
   mediaRecorder.setPreviewDisplay(v_holder.getSurface());//

   mediaRecorder.prepare();
   mediaRecorder.start();
  } catch (IOException e) {
   // TODO 自動生成された catch ブロック
   e.printStackTrace();
  }
 }
 private Camera getCameraInstance() {
  // TODO 自動生成されたメソッド・スタブ
   Camera c = null;
      try {
          c = Camera.open( 1 ); // attempt to get a Camera instance
      }
      catch (Exception e){
          // Camera is not available (in use or does not exist)
      }
      return c; // returns null if camera is unavailable
 }

}



参考サイト:
Androidで簡単なカメラアプリを作る
ソフトウェア技術ドキュメントを勝手に翻訳 c.3 カメラ