1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu lập trình trên thiết bị di động docx

20 1,6K 15
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tài Liệu Lập Trình Trên Thiết Bị Di Động
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Tài liệu
Định dạng
Số trang 20
Dung lượng 1,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nó cung c p các thành ph n nh text box, form, list và alert.. Các item có th là datafield, TextField, ImageItem... Các ph ng th c: - void setColorint red, int green, int blue - void draw

Trang 1

P TRÌNH TRÊN THI T BI DI NG

1 Gi i thi u Java và ng d ng l p trình trên thi t b di ng

1.1 Gi i thi u v Java

Vào nh ng n m 1990, Java c ra i t d án xanh và ban u c xây d ng kii m sóat các thí b dân d ng và m t s thi t b c m tay Java c xây d ng ch y u d a trong b công c phát tri n (Java Development Kit – JDK) nh là th vi n chu n trong ó ch a trình biên d ch, trình thông d ch,… ây chính là n n t ng cho vi c phát tri n ng d ng Java Hi n nay các nhà phát tri n ã xây d ng nhi u nhánh m i cho Java nh :

J2EE ( Java 2 Platform Enterprise Edition): Phiên b n dành cho máy ch l n v i s c

nh x lý và dung l ng b nh l n

J2SE ( Java 2 Platform Standard Edition): Phiên b n chu n ch y trên các máy PC và laptop

J2ME ( Java 2 Platform Micro Edition): là phiên b n rút g n c a Java cho các thi t di

ng gi i h n v b nh và b x lý

1.2 ng d ng l p trình trên thi t b di ng b ng J2ME

c tiêu c a c a J2ME là cho phép ng i l p trình vi t các ch ng trình ng d ng ng l p

i thi t b di ng, không c n quan tâm n ph n c ng J2ME c xây d ng b ng các t ng khác nhau gi u i vi c th c hi n ph n c ng kh i nhà phát tri n Sau ây là các t ng c a j2ME c xây d ng trên CLDC:

ng ph n c ng thi t b : ây là thi t b di ng v i c u hình ph n c ng c a nó nh b nh ,

c x lý Các thi t b di ng khác nhau có th có các b x lý khác nhau v i các mã l nh khác nhau M c tiêu c a J2ME là cung c p m t chu n cho t t c các l ai thi t b di ng khác nhau

ng máy o Java: Khi mã ngu n Java c biên d ch nó c chuy n i thành mã

bytecode Mã bytecode này sau ó c chuy n thành mã ngôn ng máy c a thi t b di ng T ng máy o java bao g m KVM ( K virtual Machine) là b biên d ch mã bytecode có nhi m v chuy n

mã bytecode c a ch ng trình Java thành ngôn ng máy ch y trên thi t b di ng t ng này cung

p m t s chu n hóa cho các thi t b di ng ng d ng J2ME sau khi ã biên d ch có th h at

ng trên b t k thi t b di ng nào có J2ME KVM

Ph n c ng thi t b Máy o Java

u hình CLCD-( Connected Limited Device Configuration)

Hi n tr ng MIDP- Mobile Information DeviceProfile

Các API khác

Trang 2

ng c u hình : ng c u hình c a CLDC nh ngh a giao di n ngôn ng Java c b n cho phép ch ng trình java ch y trên thi t b di ng ây là m t t p các API nh ngh a lõi c a ngôn ng J2ME Ng i l p trình có th s d ng các l p và ph ng th c c a các API này tuy nhiên các API h u d ng h n c ch a trong t ng hi n tr ng

ng hi n tr ng: T ng này cung c p các API h u d ng h n cho ng i l p trình M c ích

a hi n tr ng là xây trên l p c u hình và cung c p nhi u th vi n ng d ng h n MIDP nh ngh a các API riêng bi t cho thi t b di ng C ng có th có các hi n tr ng và các API khác ngòai MIDP

c dùng cho ng d ng, c ng có th có m t hi n tr ng nh ngh a các API cho vi c t o các ng

ng Bluetooth

Hi n nay, MIDP có hai phiên b n là MIDP 1.0 và MIDP 2.0 và cung c p:

- Các l p và các ki u d li u

- tr i t ng Display

- tr Form và giao di n ng i dùng

- tr Timer và Alert

- tr Record Management System( RMS) cho vi c l u tr d li u

Các tính n ng n i b t c a MIDP 2.0 so v i MIDP 1.0:

- Nâng c p tính n ng b o m t, h tr giao th c HTTPS, ki m sóat vi c k t n i máy di ng

i server

- Thêm các API h tr Multimedia

- r ng các tính n ng c a Form

2 MIDlet

Các ng d ng J2ME c g i là MIDlet ( Mobile Information Device Applet) MIDlet là m t

p java m r ng c a l p tr u t ng javax.microedition.midlet.MIDlet và th c thi các ph ng th c startApp(), pauseApp(), và destroyApp()

an ch ng trình t i thi u c a MIDlet:

import javax.microedition.midlet.*;

public class exMIDlet extend MIDlet {

public exMIDlet( ) { } public void startApp( ) { } public void pauseApp( ) { } public void destroyApp( boolean unconditional ) { } }

Trong ó :

o Ph ng th c exMIDlet là hàm constructor

o Ph ng th c startApp( ) : c g i b i b qu n lý ng d ng khi MIDlet c

kh i t o hay khi MIDlet tr v tr ng thái t m d ng

o Ph ng th c pauseApp( ) : c g i b i b qu n lý ng d ng m i khi ng d ng

n c t m d ng

o Ph ng th c destroyApp( ): c g i khi thoat kh i MIDlet

3 h a trong J2ME

Các l p MIDP cung c p hai m c h a: h a m c th p và h a m c cao h a m c cao dùng cho v n b n hay form h a m c th p dùng cho các ng d ng games

Trang 3

3.1 h a m c cao

h a m c cao là l p con c a l p Screen Nó cung c p các thành ph n nh text box, form, list và alert

3.1.1 TextBox

p Textbox cho phép ng i dùng nh p và s an th o v n b n Ng i l p trình có th

nh ngh a s ký t t i a, gi i h n d li u nh p ( s , m t kh u, imail,…) và hi u ch nh

i dung c a textbox

import

javax.microedition.midlet.MIDletStateChangeException;

CommandListener {

}

}

}

MIDletStateChangeException {

display = Display.getDisplay(this);

quitCommand = new

Command( "Thóat" ,Command.SCREEN,1);

textBox=new TextBox( "Soan Thao:" , "" ,100,0); textBox.addCommand(quitCommand);

textBox.setCommandListener(this);

display.setCurrent(textBox);

}

displayable) {

if(choice==quitCommand){

notifyDestroyed();

} }

}

3.1.2 Form

Form là l p h u d ng nh t c a các l p Sreen b i vì nó cho phép ch a nhi u item trên cùng m t màn hình Các item có th là datafield, TextField, ImageItem

Trang 4

package Edu.Form;

import

javax.microedition.midlet.MIDletStateChangeExceptio n;

CommandListener {

}

{

}

}

MIDletStateChangeException {

display = Display.getDisplay(this);

quitCommand = new

Command( "Thóat" ,Command.SCREEN,1);

themCommand = new

Command( "Thêm" ,Command.BACK,1);

fr=new Form( "Form: " );

fr.append( "Muc 1" );

fr.addCommand(quitCommand);

fr.addCommand(themCommand);

fr.setCommandListener(this);

display.setCurrent(fr);

}

Displayable displayable) {

if(choice==quitCommand){

notifyDestroyed();

}

if(choice==themCommand){

fr.append( "\nMuc moi" );

} }

}

3.1.3 List

p List là m t Screen ch a danh sách các l a ch n, ng i s d ng có th t ng tác v i List

và ch n m t hay nhi u item

Trang 5

package Edu.listbox;

import

javax.microedition.midlet.MIDletStateChangeExcepti on;

CommandListener {

}

unconditional) {

}

}

MIDletStateChangeException {

display = Display.getDisplay(this);

quitCommand = new

Command( "Thóat" ,Command.SCREEN,1);

chonCommand = new

Command( "Chon" ,Command.BACK,1);

ls=new List(null, Choice.IMPLICIT, new

String[]{ "Muc chon 1" , "Muc chon 2" , "Muc chon 3"

}, new Image[]{null, null, null });

ls.addCommand(quitCommand);

ls.addCommand(chonCommand);

ls.setCommandListener(this);

display.setCurrent(ls);

}

Displayable displayable) {

if(choice==quitCommand){

notifyDestroyed();

}

if(displayable == ls){

if( choice ==ls.SELECT_COMMAND) {

/////

//////

//////

} }

} }

}

Trang 6

3.2 h a m c th p

h a m c th p là l p con c a l p Canvas L p này cung c p các ph ng th c h a cho phép v lên màn hình hay vào m t m hình cùng v i các ph ng th c x lý s ki n bàn

phím L p này dùng cho các ng d ng trò ch i c n u khi n v màn hình

Canvas và Graphics là hai l p ch y u c a các hàm API c p th p Canvas là m t khung cho phép ng i l p trình có th v lên thi t b trình bày c ng nh vi c x lý s ki n Còn l p Graphics cung c p các i t ng v

3.2.1 L p Canvas

p Canvas là m t l p tr u t ng, ta ph i t o các canvas c a riêng v trên l p m r ng này và l p Canvas cung c p ph ng th c:

- paint (Graphics g) th c hi n v lên canvas

- repaint() th c hi n v l i các hình ã hi n th trên màn hình

M i l p canvas t ng nh n s ki n c a phím b ng cách s d ng các ph ng th c:

- void keyPressed (int keyCode): c g i khi m t phím c nh n

- void keyReleased( int keyCode): c g i khi m t phím c th

- void keyRepeated( int keyCode): c g i khi m t phím b gi

- int getKeyCode(int gameAction): L y m t mã phím ph n h i l i hành ng game xác nh trên thi t b

- String getKeyName (int keyCode): L y tên c a phím có giá tr mã phím là keyCode

- int getGameAction(int keyCode): L y m t hành ng game liên quan n mã phím c

nh n

- void pointerDragged( int x, int y): c g i khi rê chu t n t a x, y m i

- void pointerPressed ( int x, int y) : c g i khi nh n chu t t i t a x, y

- void pointerReleased ( int x, int y): c g i khi th chu t t i t a x, y

3.2.2 L p Graphics

i t ng Graphics có th c s d ng v : hình vuông, hình ch nh t, cung tròn,

ng th ng, ký t , nh, v n b n trên i t ng Canvas

Các ph ng th c:

- void setColor(int red, int green, int blue)

- void drawArc(…): v cung tròn

- void drawRect(…): v hình ch nh t

- void drawString(…): V chu i

- void drawImage(…): v nh

Trang 7

package Edu.KeyCodes;

import

javax.microedition.lcdui.*;

import

javax.microedition.midlet.*;

import

javax.microedition.midlet.

MIDletStateChangeException;

MIDlet {

canvas;

display=

Display.getDisplay(this);

canvas = new

KeyCodeCanvas(this);

}

public void

destroyApp(boolean

unconditional) {

}

}

MIDletStateChangeException {

display.setCurrent(canvas);

}

notifyDestroyed();

}

}

CommandListener{

y=getHeight()/2;

{

this.midlet= midlet;

quitCommand = new

Command( "Thóat" , Command.SCREEN, 1);

addCommand(quitCommand);

}

getHeight());

}

Displayable d) {

if (c== quitCommand){

midlet.exitMIDlet();

} }

keyCode) {

if (keyCode ==

getKeyCode(RIGHT)){

x x+10;

}

if (keyCode ==

getKeyCode(LEFT)){

x x-10;

}

if (keyCode == getKeyCode(UP)){

y y-10;

}

if (keyCode ==

getKeyCode(DOWN)){

y y+10;

}

repaint();

} }

Trang 8

4 p trình Bluetooth

thu t bluetooth c dùng truy n thông gi a n th ai di ng v i n th ai di ông,

ho c gi a n th ai di ng và mán tính

Có 3 ph ng th c truy n thông c cài t trong k thu t bluetooth:

- OBEX - Object Exchange: dùng chuy n d li u d ng file, hình nh

- L2CAP- Logical Link Control and Adaptation Protocol: Dùng chuy n các gói d li u

gi a client và server

- RFCOMM- Radio Frequency COMMunication: Dùng chuy n các lu ng d li u n

gi n

Sun Java cung c p th vi n hàm API bluetooth: Bluetooth JSR82 API package và bao g m t t c các ph ng th c truy n thông nói trên

t ng d ng bluetooth bao g m hai ph n: server dùng t o d ch v bluetooth và ph n client

t n i n server và th c hi n truy n thông

Ph n server:

M i m t thi t b bluetooth bao g m m t i t ng thi t b c c b mà nó giúp cho vi c truy n thông gi a các thi t b Trong JSR82 ph ng th c LocalDevice.getLocalDevice() tr v i t ng này

m c k t n i bluetooth ph i s d ng chu i URL b ng ph ng th c Connector.open(URL)

và ph ng th c này tr v lu ng chuy n d li u StreamConnectionNotifier

d ng hai ph ng th c openOutputStream() ho c openInputStream() g i ho c nh n d

li u

URL c xác nh: URL = "btspp://localhost:" + UUID +

";name=rfcommtest;authorize=true";

Trong ó UUID có th là : OBEX, L2CAP, RFCOMM

m_strUrl= "btspp://localhost:" + RFCOMM_UUID + ";

name=rfcommtest;authorize=true";

// m_StrmConn = BTFACADE.waitForClient(SERVICE_NBR);

try

{

m_LclDevice = LocalDevice.getLocalDevice();

m_LclDevice.setDiscoverable(DiscoveryAgent.GIAC);

m_StrmNotf = (StreamConnectionNotifier)Connector.open(m_strUrl);

//Now it will start waiting for the client connection

m_StrmConn = m_StrmNotf.acceptAndOpen();

m_bInitServer = true;

m_Output = m_StrmConn.openOutputStream();

m_Input = m_StrmConn.openInputStream();

}

catch (BluetoothStateException e)

{

System.err.println( "BluetoothStateException: " + e.getMessage() );

}

Trang 9

Ph n Client:

t o c client s d ng các ph ng th c sau tìm thi t b bluetooth và tìm d ch v c trên nó:

void deviceDiscovered(RemoteDevice btDevice, DeviceClass od)

void servicesDiscovered(int transID, ServiceRecord[] records)

Sau khi k t n i c thi t b bluetooth s d ng các ph ng th c write () và read() g i và

nh n d li u

catch (BluetoothStateException e)

{

System.err.println( "BluetoothStateException: " + e.getMessage() );

}

catch (IOException ex)

{

ex.printStackTrace();

}

catch(Exception e)

{

public void SearchAvailDevices()

{

try

{

//First, get the local device and obtain the discovery agent.

m_LclDevice = LocalDevice.getLocalDevice();

m_DscrAgent= m_LclDevice.getDiscoveryAgent();

m_DscrAgent.startInquiry(DiscoveryAgent.GIAC,this);

}

catch (BluetoothStateException ex)

{

System.out.println("Problem in searching the Bluetooth devices");

ex.printStackTrace();

}

}

public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod)

{

try

{

// Device information

System.out.println("Major Device Class and information : " +

cod.getMajorDeviceClass() +

" Minor Device Class: " +

cod.getMinorDeviceClass());

System.out.println("Bluetooth Address of the device: " +

btDevice.getBluetoothAddress());

System.out.println("Friendly Name: " +

btDevice.getFriendlyName(true));

// Now its our responsibility to search its services

UUID uuidSet[] = new UUID[1];

uuidSet[0] = RFCOMM_UUID;

Trang 10

5 Phát tri n ng d ng MIDlet

5.1 Chu n b các ph n m m

Eclipse 3.1

Sun Wireless Toolkit

EclipseME Plugin for Eclipse

5.2 Cài t

c 1: Cài các ph n m m Eclipse và Wireless Toolkit

c 2: Cài t EclipseME plugin

int searchID = m_DscrAgent.searchServices(null,uuidSet,

btDevice,this); }

catch (Exception e)

{

System.out.println("Device Discovered Error: " + e);

}

}

public void servicesDiscovered(int transID, ServiceRecord[] records) {

for (int i = 0; i < records.length; i++)

{

m_strUrl = records[i].getConnectionURL(ServiceRecord.

AUTHENTICATE_ENCRYPT, false);

System.out.println(m_strUrl);

//we have found our service protocol

if(m_strUrl.startsWith("btspp"))

{

m_bServerFound = true;

m_bInitClient=true;

break;

}

}

Trang 11

c 3:

c 4:

c 5:

Trang 12

c 5:

c 6:

Trang 13

c 7:

c 8:

Trang 14

c 9:

c 10:

Trang 15

c 11:

c 12:

c 13:

Trang 16

c 14:

c 15:

Trang 17

c 16:

c 17:

Trang 18

c 18:

c 19:

Trang 19

5.3 óng gói ch ng trình

Trang 20

5.4 Cài t ch ng trình lên n th ai di ng

Sau khi óng gói ch ng trình s d ng trình PC Suite cài t ch ng trình lên n th ai

di ng

6 t lu n

- c u ã tìm hi u ki n trúc t ch c l p trình J2ME trên thi t b di ng

- ng v i m i k thu t l p trình trên thi t b di ng xây d ng c các an mã J2ME

ng ng

Tài li u tham kh o:

4 Bluetooth – Link manager and J2ME programming, Kjell Jorgen Hole

Ngày đăng: 24/12/2013, 04:17

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w