4
- ªî£ì¼‹ Altitude ÝAòõŸ¬ø ªì™ªï† (Telnet)ðò¡ ð´ˆF ªè£´‚è º® »‹. ꣡ø£è ⺫ô† ì˜ 5554 â¡ø «ð£˜ ®™ ªêò™ð†ì£™ èñ£‡† Šó£‹Š† ®™ W›‚è‡ìõ£Á è†ì¬÷ ªè£´‚è «õ‡´‹. talent localhost 5554 geo fix 2030 500 â¡Á ªè£´ˆî£™, Üèô «è£†®¡ à¬ìò ñFŠ¹ 20 â¡Á‹ Gô G¬ó‚«è£†®Â¬ìò ñFŠ¹ 30 â¡Á‹ àòóˆF¬ìò (Altitute) ñFŠ¹ 500 â¡Á‹ ܬñˆ¶‚ ªè£œÀ‹. (ðì‹-1) Location Changed â¡ø ªñˆî®™ ⺫ô† ì˜ Ü™ô¶ ªñ£¬ð™ ®¬õC™ àœ÷ îŸ «ð£¬îò Üèô‚«è£´ ñŸÁ‹ GôG¬ó‚ «è£†®¬ù è‡ìPò º®»‹. ÜîŸè£è loc.getLatitude(); loc.getLongitude(); ðò¡ð´ˆîŠð´Aø¶ THâv Ý‚®M†®‚è£ù Gó™ -3 ™ àœ÷¶. Run>Run As> Android Appli cation â¡ðî¬ù AO‚ ªêŒî¾ ì¡ ÜŠO«èê¡ ªêò™ðì ªî£ìƒ°‹. ªì™ªï† Íô‹ THâvCŸè£ù îèõL¬ù ªè£´ˆî£™ Üî¬ù F¬óJ™ 裇H‚°‹. â‚OŠC™ Þ¼‰¶‹ îèõ™ ªè£´‚è º®»‹. â‚OŠC™ ®®â‹âv â¡ðî¬ù «î˜¾ ªêŒ¶ ªè£´‚è «õ‡´‹. (ðì‹-3) Þ‰î ꣡Á Íô‹ THâv ®¬õC™ àœ÷ Üèô‚«è£´ ñŸÁ‹ GôG¬ó‚«è£´ âšõ£Á 致H®Šð¶ â¡ðî¬ù 𣘈 «î£‹.

Hardware Interface in Android (in tamil)

Embed Size (px)

DESCRIPTION

Dr. Ramkumar Lakshminarayanan article published in Tamil Computer Magazine. The content is about hardware interface in Android Application

Citation preview

Page 1: Hardware Interface in Android (in tamil)

- ªî£ì¼‹

Altitude ÝAòõŸ¬øªì™ªï†(Telnet)ðò¡ð´ˆF ªè£´‚è º®»‹. ꣡ø£è ⺫ô†ì˜ 5554 â¡ø «ð£˜®™ ªêò™ð†ì£™èñ£‡† Šó£‹Š†®™ W›‚è‡ìõ£Á

è†ì¬÷ ªè£´‚è«õ‡´‹.

talent localhost 5554geo fix 2030 500 â¡Á ªè£´ˆî£™, Üèô

«è£†®¡ à¬ìò ñFŠ¹ 20 â¡Á‹ GôG¬ó‚«è£†®Â¬ìò ñFŠ¹ 30 â¡Á‹

àòóˆF¬ìò (Altitute) ñFŠ¹ 500 â¡Á‹Ü¬ñˆ¶‚ ªè£œÀ‹. (ðì‹-1)

Location Changed â¡ø ªñˆî®™ ⺫ô†ì˜ Ü™ô¶ ªñ£¬ð™ ®¬õC™ àœ÷ ð£¬îò Üèô‚«è£´ ñŸÁ‹ GôG¬ó‚«è£†®¬ù è‡ìPò º®»‹. ÜîŸè£è

loc.getLatitude();loc.getLongitude(); ðò¡ð´ˆîŠð´Aø¶

THâv Ý‚®M†®‚è£ùGó™ -3 ™ àœ÷¶.

Run>Run As> Android Application â¡ðî¬ù AO‚ ªêŒî¾ì¡ ÜŠO«èê¡ ªêò™ðìªî£ìƒ°‹. ªì™ªï† Íô‹THâvCŸè£ù îèõL¬ùªè£´ˆî£™ Üî¬ù F¬óJ™è£‡H‚°‹.

â‚OŠC™ Þ¼‰¶‹ îèõ™ªè£´‚è º®»‹. â‚OŠC™

®®â‹âv â¡ðî¬ù «î˜¾ ªêŒ¶ªè£´‚è «õ‡´‹. (ðì‹-3)

Þ‰î ꣡Á Íô‹ THâv ®¬õC™àœ÷ Üèô‚«è£´ ñŸÁ‹ GôG¬ó‚«è£´âšõ£Á 致H®Šð¶ â¡ðî¬ù 𣘈«î£‹.

Page 2: Hardware Interface in Android (in tamil)

Location Changed â¡ø ªñˆî®™ ⺫ô†

‡†ó£Œ®™ ðôMîñ£ù ý£˜´«õ˜ ðò¡ð´ˆîŠð´A¡øù. ꣡ø£è, Sensors, Camera,aculerometer, magnetometer, pressure sensor,temperature sensor, Telephony, BluetoothñŸÁ‹ õò˜ªôv (Wireless) è¼Mèœ.«èñó£ (Camera)

«èñó£ ♫ô£¼‹ ݘõñ£è ðò¡ð´ˆ¶‹å¼ ý£˜´«õ˜ Ý°‹. «èñó£M¬ùÞ¡ªì¡† (Intent)Íôº‹ Classðò¡ð´ˆ¶õî¡ Íôº‹ ÜŠO«èêQ™ ðò¡ð´ˆîô£‹.꣡ø£è,

Camera Intent intent = new Intent("android.media.action.IMAGE_CAPTURE) Start Activity(intent);

Ü´ˆîî£è Camera Class ðò¡ð´ˆ¶‹º¬ø¬ò 𣘊«ð£‹.

Camera Class ðò¡ð´ˆ¶õ androidmanifest.xml-™ permission ªè£´‚è «õ‡´‹.

<uses-permission android:name= "android.permission.CAMERA"/>

Camera Class ðò¡ð´ˆF ÜŠO«èêQ™Camera ðò¡ð´ˆîº®»‹.

Camera.Parameters Class Íô‹ Camera-MŸè£ù Parameter-è÷£ù picture size, picturequality, flash modes «ð£¡ø¬õèœ ªè£´‚躮»‹.Camera Preview ªñˆî´(Method)

Camera ܾ†¹†®¬ù 𣘂è ðò¡ð´Aø¶. Surface View Class Íô‹ F¬óJ™è£‡H‚è å¼ î÷ˆF¬ù ܬñˆFì º®»‹.

꣡ø£è, ÜŠO«èêQ™ Camera ðò¡ð´ˆ¶‹ º¬øJ¬ù 𣘊«ð£‹. ݇†ó£Œ´ÜŠO«èê¡ à¼õ£‚Aò¾ì¡ main.xml«î£¡Á‹. main.xml-™ Cameraܾ†¹†®¬ù ªðÁõè Surface View ðò¡ð´ˆî«õ‡´‹./res/layout/main.xml-Ÿè£ù Gó™ content 1-™àœ÷¶ «ð£¡Á Þ¼‚°‹.Content 1:

<Linear Layoutx m l n s : a n d r o i d -

"http://schemas.android.com/apk/res/android"android:layout-width="fill-parent"android:layout-height="fill-parent"android: orientation="vertical"><Surface View android:id="@tid/surface"android:layout-width="fill-parent"android:layout-height="fill-parent"></SurfaceView></LinearLayout>

main.xml-½ì¡ Control interface ðò¡ð´ˆî Þ¡ªù£¼ xml ç¬ð™ ðò¡ð´ˆî«õ‡´‹.

/res/layout/camera overlay.xml-Ÿè£ù Gó™content 2-™ àœ÷¶ «ð£¡Á Þ¼‚°‹.Content 2:

<Linear Layout xmlns:android="http://schemas.android.com/apk/res/ android"android:layout-width="fill-parent"android:layout-height="fill-parent"android:orientation="vertical"android:gravity="bottom"android:Layout-gravity="bottm"><Linear Layoutxmlns:android="http://schemas.android.com

/apk/res/android"android:layout-width="fill-parent"android:layout-height="wrap-content"android:orientation="horizontal"android:gravity="center-horizontal"> <Button android:id="@+id/button"android:layout-width="wrap=content"android:layout-height="wrap-content"android:text="take picture" /></Linear Layout></Linear Layout>

Ü´ˆîî£è Activity à¼õ£‚°‹ º¬øJ¬ù(Gó™ content 3), ºîL™ title ñŸÁ‹ NOTIFICATION BAR ñ¬ø‚èŠð´‹.

Layout Inflater Íô‹ main.xml ç¬ð™ «ñ™cameraoverlay.xml ðò¡ð´ˆîŠð´‹. GóL™ð†ì¬ù AO‚ ªêŒî¾ì¡ ªêò™ ï¬ìªðøOnclickListener() ðò¡ð´ˆî «õ‡´‹. TakePicture(), ShutterCallback ñŸÁ‹ PictureCallback() ðò¡ð´ˆîŠð†´œ÷¶. PictureCallback()Þó‡´ º¬ø ðò¡ð´ˆîŠð†®¼‚°‹.H¡ù˜ Activityîèõ¬ô «êI‚°‹. CompressedPicture byte array ðò¡ð´ˆîŠð†´ ܶtempdata â¡ø local variable-L™ «êI‚èŠð´‹. Byte Array-J¬ù Bitmap-Ýè ñ£ŸPìBitmap Factory ðò¡ð´ˆîŠð´Aø¶.

îèõ¬ô Bitmap Ýè «êIˆ¶ URL ÝèªðÁõ media content providerðò¡ð´ˆîŠð´Aø¶. è¬ìCò£è ÜŠO«èê¡ º®¾õ¼õ finish() ðò¡ð´ˆîŠð´Aø¶. Cô

Ý

Page 3: Hardware Interface in Android (in tamil)

Content 3: src/com/cookbook/hardware/cameraApplica tion.javaPackage com.cookbook.hardware ;import android .app.activity ;import android .content.Intent ;import android .graphics.Bitmap ;import android .graphics.Bitmapfactory ;import android .graphics.Pixelformat ;import android .hardware.camera ;import android .hardware.camera.picturecallback;import android.hardware.camera.shuttercallback;import android .os.Bundle ;import android . provider.media store. Images ;import android . util . Log ;import android . view . LayoutInfbater ;import android . view .Surfaceholder ;import android . view . surfaceview ;import android . view . view ;import android . view . window ;import android . view . Windowmanager ;import android . view .OnclickListener ;import android . view . viewGroup.LayoutParams;import android . widged .Button ;import android .widget . Toast ;

Public class camera Application extends Activity implement surface Holder . Callback{Private static final string TAG ="Private Layout Inflater mInflater =null;Camera m Camera ;byte[] tempdata ;boolean mPreviewRunning = false ;private surface Holder mSurfaceHolder ;private surfaceView mSurfaceView ;Button take Picture ;

@OverridePublic void onCreate (Bundle saved InstanceState){ super . on Create [saved Instance state ] ; getwindow () . setFormat [PixelFormat .TRANSLUCENT); request Window Feature ( Window . FEATURE- NO_TITLE];getWindow().setFlags(WindowManager.LayoutParams. FLAG-FULLSCREEN,

window Manager.Layout.Params.FLAG-FULLSCREEN); SetContentView[R.layout.main]; mSurfaceView= [Surfaceview] findViewBy Id [R.id.surface]; mSurfaceHolder=mSurfaceView.getHolder[]; mSurfaceHolder.addCallback[this]; mSurfaceHolder.setType[SurfaceHolder.SURF ACE-TYPE-PUSH-BUFFERS];

mInflater=LayoutInflater.from[this]; View overview=mInflater .inflate [R.Layout. CameraOverlay,null ]; This .add contentView (overView, new Layout params (layout params .FILL- PARENT Layout Params -FILL -PARENT )); takepicture=[button] findViewById[R.id.button); take picture .set On click listener [new onClickListener (){ public void onClick [View view] { mCamera.takePicture [mShutter Callback , mPicture Callback ,mjpey]; } } ); } ShutterCallback mSshutterCallback=new shutter call back []{ @override public void onShutter(){} };Picturecallback mPictureCallback=newPicture Callback[]{ public void onPictureTaken [byte[] data ,Camera[]{} }; Picture callback mjepy=new Picture callback []{ public void on Picture Taken [byte []data, camera { if [data !=null]{ tempdata =data ; done[]; } } }; void done []{ Bitmap bm= Bitmap Factory .decode Byet Array [temdata,O,tempdata .length]; String url =Images.Media insert Image [getContent Resolver [], bm,null,null]; bm.recycle[]; Bundle. bundle =new Bundle[]; if(url! =null){ bundle.putstring ["Url",url ];

Ý¡†ó£Œ´ -2

Þ󣋰ñ£˜ ªô†²Iï£ó£òí¡

13ªñ£¬ðL™ preview êKò£è ªêò™ðì£ñ™Þ¼‚°‹. Ü‰î «ïóˆF™ oncreate() ªñˆî®™W›‚è‡ì õKè¬÷ ðò¡ð´ˆî«õ‡´‹.

mthis.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_

LANGUAGE);Ü´ˆîî£è Hardware Telephone Ý°‹.

Þî¬ù ðò¡ð´ˆ¶õ Telephony Api ðò¡ð´ˆîŠð´Aø¶. Intent ðò¡ð´ˆF»‹ ªêò™è¬÷ ðò¡ð´ˆîº®»‹. ꣡ø£è, start Activity(newIntent(Intent.ACTION_CALL, Vri.parse("tal:9443188750")));

Page 4: Hardware Interface in Android (in tamil)

ªî£ì¼‹

Intent mIntent =new Intent []; mIntent PutExtras [bundle]; Set Result [RESULT -OK,mIntent ]; } else { Toast.make Text [this, "Picture can notbesaved," Toast .LENGTH -SHORT.show []; } finish []; }

@override public void surface changed [surface Holder holder, int format int w ,int h]{ Log .e {TAG, "surface changed ']; try {

if[mPreview Running]{ mCamera .stop Preview []; mPreview Running =false; }

Camera .parameters p=m Camera.getParameters[]; p.set preview size [w,h ];

mCamera .setparameters [p]; mCamera .setPreview Display [holder ] mCamera .start Preview []; mPreview Running =true ; } Catch [Exception e] { Log .d[" " . e. to string []); } }

@Override Public void surface created[surfaceHolder holder ]{ Log . e [TAG ,"surface created "]; m camera = camera .open []; }

@Override public void surface Destroyed [ surface Holder holder]{ Log .e[TAG, "surface Destroyed " ]; mcamera .stop Preview []; mPreview Running =false; mCamera .release[]; mCamera =null; } }