20.11.2016 Views

ANDROID APP

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

การสร้างและการตรวจจับอีเวนต์<br />

public boolean onKeyDown(int keyCode, KeyEvent event) {<br />

if (keyCode == KeyEvent.KEYCODE_CAMERA) {<br />

return true; // consume event, hence do nothing on camera button<br />

}<br />

return super.onKeyDown(keyCode, event);<br />

}<br />

แต่การใช้งานอีเวนต์ประเภทนี้ มีข้อยกเว้น คือ<br />

m การกดปุ่ม Power และปุ่ม Home จะถูกขัดจังหวะการทำงานโดยระบบปฏิบัติการ<br />

โดยตรง เราไม่สามารถเขียนคำสั่งเพื่อแก้ไขการทำงานนี้ได้<br />

m การกดปุ่ม BACK, ปุ่ม MENU, ปุ่ม HOME และปุ่ม SEARCH จะไม่ถูกขัดจังหวะการ<br />

ทำงานโดยระบบปฏิบัติการโดยตรง เนื่องจากในระบบปฏิบัติการแอนดรอยด์ 2.0<br />

ปุ่มดังกล่าวอาจเป็นได้ทั้งแบบฮาร์ดแวร์หรือซอฟต์แวร์<br />

ชุดคำสั่งที่ 5.1 จะแสดงตัวอย่างของการใช้งานปุ่มต่างๆ ดังนี้<br />

m ปุ่มกล้องถ่ายรูปและปุ่มซ้ายของ DPAD - เราจะใช้อีเวนต์ onKeyDown() เพื่อแสดง<br />

ข้อความบนจอ และให้ส่งค่ากลับว่า true เมื่ออีเวนต์นี้ทำงานเสร็จเรียบร้อย<br />

m ปุ่มเพิ่มเสียง (Volume Up) - เมื่อกดแล้วจะสั่งให้แสดงข้อความบนจอ<br />

m ปุ่ม SEARCH - เราจะใช้อีเวนต์ onKeyDown() และ startTracking() เพื่อแสดง<br />

ข้อความบนจอ<br />

m ปุ่ม Back - เมื่อกดแล้วจะเกิดอีเวนต์ onBackPressed()<br />

119<br />

คู่มือประกอบการพัฒนาแอพบนแอนดรอยด์เวอร์ชั่นแรกๆ นั้นได้อธิบายรายละเอียดเกี่ยวกับปุ่ม<br />

BACK ว่าโดยปกติแล้วการทำงานของปุ่มนี้เราจะไม่สามารถปรับแต่งอะไรได้ แต่อย่างไรก็ดี ถ้าเรา<br />

พัฒนาแอพบนแอนดรอย์ที่มีระดับ API Level 5 (Eclair) ขึ้นไป ก็จะมีคำสั่งสำหรับทำงานร่วมกับปุ่ม<br />

BACK คือ onBackPressed()<br />

การเขียนชุดคำสั่งเพื่อให้สามารถทำงานกับระบบปฏิบัติการที่มีระดับ API LEVEL น้อยกว่า 5<br />

นั้น เราจะใช้คำสั่ง KeyEvent.KEYCODE_BACK และยังคงใช้เมธอด onBackPressed() ได้เช่นกัน<br />

ตามที่แสดงในชุดคำสั่งที่ 5.1 (ชุดคำสั่งนี้สามารถคอมไพล์บนระบบปฏิบัติการแอนดรอยด์เวอร์ชั่น 2.0<br />

ขึ้นไปเท่านั้น แต่แอพที่ได้จากการคอมไพล์นี้จะยังคงทำงานกับระบบปฏิบัติการแอนดรอยด์เวอร์ชั่น<br />

ก่อนๆ ได้) การที่จะทำงานกับปุ่ม BACK นั้น เราจะต้องใช้เมธอด startTracking() เช่นเดียวกับ<br />

การใช้งานปุ่ม SEARCH ในชุดคำสั่งที่ 5.1<br />

ชุดคำสั่งที่ 5.1 src/com/cookbook/PhysicalKeyPress.java<br />

package com.cookbook.physkey;<br />

import android.app.Activity;<br />

import android.os.Bundle;<br />

import android.view.KeyEvent;<br />

import android.widget.Toast;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!