Android: ทำ SplashScreen ง่ายนิดเดียว

บทความนี้เป็นตัวอย่างของการทำ Splash Screen หรือหน้า Intro ก่อนเข้า Application ใน Android นะ

ตัวอย่าง Source Code สามารถ Download ได้ที่นี้ SplashScreenDemo

1. สร้าง Android Project ใหม่

Create Project Part1

Create Project Part2

2. สร้าง Layout ของหน้า SplashScreen ใน Folder layout

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”#FFF”>
<ImageView android:layout_gravity=”center”
android:src=”@drawable/android”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</LinearLayout>

3. สร้าง Activity Class สำหรับหน้า SplashScreen ใน Folder src

public class SplashScreenActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splashscreen);
}

}

การทำ SplashScreen โดยใช้ Handler

3.1 การใช้ Handler สำหรับทำ Splash Screen นั้นสามารถทำได้โดยใช้ Method ของ Handler ที่ชื่อว่า postDelayed(Runnable, DelayedTime)

Runnable: คือ Process ที่จะกำหนดให้กับตัว Handler
ในตัวอย่างคือเรียกคำสั่ง finsish() เพื่อปิด Activity ปัจจุบัน
จากนั้นจึงเรียกคำสั่ง startActivty เพื่อเปิดหน้า Activity หลักของ Application ขึ้นมา

DelayedTime: คือเวลาที่เมื่อผ่านไปตามที่กำหนดแล้วจะเรียก Runnable ขึ้นมาทำงาน มีหน่วยของเวลาเป็น Millisecond (1000 Millisecond = 1 Second)
ในตัวอย่างกำหนดไว้ 2000 Millisecond หรือ 2 Second

private Handler mHandler;
mHandler = new Handler();// Call postDelayed Method for running process after delay time
mHandler.postDelayed(new Runnable() {@Override
public void run() {
finish();
startActivity(new Intent(SplashScreenActivity.this,
MainActivity.class));
}

}, 2000);

การทำ SplashScreen โดยใช้ Thread

3.2 การใช้ Thread สำหรับทำ Splash Screen ทำได้โดยสร้าง Thread ขึ้นมาใหม่และใช้คำสั่ง start เพื่อสั่งให้ Thread ทำงาน และใน Thread ให้ทำการ Override Method run() จากนั้นจึงใช้คำสั่ง sleep(time) เข้ามาช่วยทำ SplashScreen

sleep เป็นคำสั่งให้หยุดทำงาน โดยเราสามารถกำหนดเวลาที่ต้องการสั่งให้ Thread หยุดทำงานได้ ซึ่งหน่วยของเวลาคือ Millisecond หลังจากสั่งให้หยุดทำงานเสร็จจึงเรียกใช้ Method finish() เพื่อสั่งปิด Activity ปัจจุบัน และตามด้วย Method startActivity เพื่อเปิดหน้า Activity หลักของ Application

new Thread() {

@Override
public void run() {
try {
sleep(2000);
finish();
startActivity(new Intent(SplashScreenActivity.this,
MainActivity.class));
} catch (Exception e) {
e.printStackTrace();
}
}

}.start();

4. แทรก Activty Tag ในไฟล์ AndroidManifest.xml

ทำการเปลี่ยน Activity แรกสุดที่จะถูกเรียกเป็น SplashScreenActivty และทำการแทรก Activity Tag ของ Class Activity หลักของ Application

<activity android:name=”.SplashScreenActivity”  android:label=”@string/app_name”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
<activity android:name=”.MainActivity”>
</activity>

Output:

1. แสดงหน้า Activity ของ SplashScreen ที่สร้างขึ้น

Output 01

2. หลังจากผ่านไป 2 วินาที ก็จะปิดหน้า SplashScreen ปัจจุบันและเรียกหน้า Activity หลักของ Application ขึ้นมา

Output 02

credit : http://puyblog.piscessera.com/android-ทำ-splashscreen-ง่ายนิดเดียว

Android Debug Bridge (ADB) คำสั่งเพื่อการควบคุม Android ขั้นสูง

เราจะมาพูดถึงเรื่องที่เป็นการใช้งานขั้นสูงกันนแล้วนะครับ นั้นคือ Android Debug Bridge ซึ่งมันคือการใช้คำสั่งแบบ command line เพื่อเข้าความคุมหรือออกคำสั่งให้กับอุปกรณ์ android ซึ่งในกรณีที่ใช้เครื่องจริงก็จะใช้ผ่าน USB Driver นะครับ ส่วนใน Emulator ก็สามารถใช้ได้เช่นกัน

https://i2.wp.com/img.spacethai.net/images/imagesqtbn.jpgADB นั้นย่อมาจาก Android Debug Bridge เป็นเครื่องมือแบบ command line ที่เอาไว้จัดการข้อมูลต่างๆ บนมือถือจากพีซี (ผ่านโหมด USB Debugging ตัวโปรแกรมนี้มาพร้อมกับ Android SDK อยู่แล้ว)

การใช้งาน ADB เบื้องต้น

ตรวจสอบให้แน่ใจว่าได้เปิดโหมด USB Debug ที่โทรศัพท์หรือใน Emulator แล้ว ตั้งค่าที่ Menu > Setting >Applications >Development > USB Debugging

https://i0.wp.com/img.spacethai.net/images/sddefault1.jpg

** การใช้งาน adb ทุกครั้งต้อง สั่ง cd ไปที่ android-sdk-windows/tools

ตรวจสอบว่าคอมพิวเตอร์มองเห็นโทรศัพท์หรือยังโดยพิมพ์

./adb devices

https://i1.wp.com/img.spacethai.net/images/1bf714c8ef.png

Login shell (สำหรับเครื่องที่ Root แล้ว) ส่วน Emulator ถือว่ามีสิทธิ Root อยู่แล้ว

./adb shell

https://i1.wp.com/img.spacethai.net/images/602719bf1f.png

แสดงรายการแอพลิเคชั่นในโทรศัพท์

./adb remount
./adb shell
# cd /system/app
# ls

https://i1.wp.com/img.spacethai.net/images/e0aff94e22.png

ลบแอพลิเคชั่น

./adb remount
./adb shell
# rm /system/app/xxxx.apk

ติดตั้งแอพลิเคชั่น
./adb install xxx.apk [path directory]

ยกตัวอย่าง
./adb install AndroidThaiDict_v1.1.apk /media/data/AndroidThaiDict_v1.1.apk

https://i2.wp.com/img.spacethai.net/images/88777dd78a.png

โอนย้ายไฟล์ระหว่างคอมพิวเตอร์กับโทรศัพท์แอนดรอยด์
โอนย้ายไฟล์เข้าเครื่องโทรศัพท์

./adb push

[ destination]

ตัวอย่าง
./adb push /media/data/HotNews_v1.1.apk /mnt/sdcard

https://i1.wp.com/img.spacethai.net/images/3771ce2f63.png

โอนย้ายไฟล์จากโทรศัพท์
./adb pull source [destination]

ตัวอย่าง
./adb pull /mnt/sdcard/HotNews_v1.1.apk /media/data

https://i1.wp.com/img.spacethai.net/images/2ee66dd229.png

นอกจากนั้นยังมี

adb reboot ใช้สั่งให้เครื่อง Reboot ทันที

adb reboot bootloader ใช้สั่งให้เครื่องรีบูตแล้วเปิดตัวเองเข้าสู่ bootloader mode

adb reboot recovery ใช้สั่งให้เครื่องรีบูตแล้วเปิดตัวเองเข้าสู่ recovery mode ใช้สำหรับการรีเซ็ตเครื่อง

Credit : http://www.phet.in.th/2011/01/android-story-6-android-debug-bridge-adb/

Android: ทำ SplashScreen ง่ายนิดเดียว

บทความนี้เป็นตัวอย่างของการทำ Splash Screen หรือหน้า Intro ก่อนเข้า Application ใน Android นะ

ตัวอย่าง Source Code สามารถ Download ได้ที่นี้ SplashScreenDemo

1. สร้าง Android Project ใหม่

Create Project Part1

Create Project Part2

2. สร้าง Layout ของหน้า SplashScreen ใน Folder layout

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”#FFF”>
<ImageView android:layout_gravity=”center”
android:src=”@drawable/android”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</LinearLayout>

3. สร้าง Activity Class สำหรับหน้า SplashScreen ใน Folder src

public class SplashScreenActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splashscreen);
}

}

การทำ SplashScreen โดยใช้ Handler

3.1 การใช้ Handler สำหรับทำ Splash Screen นั้นสามารถทำได้โดยใช้ Method ของ Handler ที่ชื่อว่า postDelayed(Runnable, DelayedTime)

Runnable: คือ Process ที่จะกำหนดให้กับตัว Handler
ในตัวอย่างคือเรียกคำสั่ง finsish() เพื่อปิด Activity ปัจจุบัน
จากนั้นจึงเรียกคำสั่ง startActivty เพื่อเปิดหน้า Activity หลักของ Application ขึ้นมา

DelayedTime: คือเวลาที่เมื่อผ่านไปตามที่กำหนดแล้วจะเรียก Runnable ขึ้นมาทำงาน มีหน่วยของเวลาเป็น Millisecond (1000 Millisecond = 1 Second)
ในตัวอย่างกำหนดไว้ 2000 Millisecond หรือ 2 Second

private Handler mHandler;
mHandler = new Handler();// Call postDelayed Method for running process after delay time
mHandler.postDelayed(new Runnable() {@Override
public void run() {
finish();
startActivity(new Intent(SplashScreenActivity.this,
MainActivity.class));
}}, 2000);

การทำ SplashScreen โดยใช้ Thread

3.2 การใช้ Thread สำหรับทำ Splash Screen ทำได้โดยสร้าง Thread ขึ้นมาใหม่และใช้คำสั่ง start เพื่อสั่งให้ Thread ทำงาน และใน Thread ให้ทำการ Override Method run() จากนั้นจึงใช้คำสั่ง sleep(time) เข้ามาช่วยทำ SplashScreen

sleep เป็นคำสั่งให้หยุดทำงาน โดยเราสามารถกำหนดเวลาที่ต้องการสั่งให้ Thread หยุดทำงานได้ ซึ่งหน่วยของเวลาคือ Millisecond หลังจากสั่งให้หยุดทำงานเสร็จจึงเรียกใช้ Method finish() เพื่อสั่งปิด Activity ปัจจุบัน และตามด้วย Method startActivity เพื่อเปิดหน้า Activity หลักของ Application

new Thread() {

@Override
public void run() {
try {
sleep(2000);
finish();
startActivity(new Intent(SplashScreenActivity.this,
MainActivity.class));
} catch (Exception e) {
e.printStackTrace();
}
}

}.start();

4. แทรก Activty Tag ในไฟล์ AndroidManifest.xml

ทำการเปลี่ยน Activity แรกสุดที่จะถูกเรียกเป็น SplashScreenActivty และทำการแทรก Activity Tag ของ Class Activity หลักของ Application

<activity android:name=”.SplashScreenActivity”  android:label=”@string/app_name”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
<activity android:name=”.MainActivity”>
</activity>

Output:

1. แสดงหน้า Activity ของ SplashScreen ที่สร้างขึ้น

Output 01

2. หลังจากผ่านไป 2 วินาที ก็จะปิดหน้า SplashScreen ปัจจุบันและเรียกหน้า Activity หลักของ Application ขึ้นมา

Output 02

credit : http://puyblog.piscessera.com/android-ทำ-splashscreen-ง่ายนิดเดียว

Android Tutorial – Toast

การสร้าง Toast อย่างง่ายๆใน แอนดรอยด์(Android) กันบ้าง Toast คือคลาสที่ใช้แสดงข้อความขึ้นมาบนหน้าจอ ดังรูป

AndroidJump Toast 1

Toast คือคลาสใน Android ที่ใช้แสดงข้อความขึ้นมาบนหน้าจอ โดยจะแสดงเฉพาะข้อความ ไม่มีปุ่มอื่น เช่น OK หรือ Cancel เป็นต้น และจะแสดงในระยะเวลาสั้นๆ

ความรู้ที่ได้จากตัวอย่างนี้
1. การเขียนโปรแกรมเพื่อใช้งาน Toast
2. การแสดง Toast ขึ้นมาด้วย method “show()”

เริ่มกันเลยค้าบ….^_^
1. สร้างโปรเจ็ค Android Project โดยไปที่เมนู File > New > Project > Android Project หรือ File > New > Android Project ( กรณีมี เมนู Android Project ให้เลือก )

2. กำหนดค่าต่างๆ ดังรูป แล้วคลิกปุ่ม Finish โดยจะเห็นว่าเราติ๊กที่ CheckBox “Create Activity :” เพื่อสร้าง Activity Class ชื่อ MainActivity ให้เราอัตโนมัติ

AndroidJump Toast 2

3. ที่ AndroidManifest.xml ไม่ต้องแก้ไขอะไร เนื่องจากโปรแกรมนี้เรามี Activity Class เดียว

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.androidjump.app.simpletoast" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" 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-sdk android:minSdkVersion="7" /> </manifest> 

4. แก้ไขส่วนแสดงหน้าจอ User Interface หน้าจอหลักไปที่ layout > main.xml ดังนี้ (สามารถสร้างไฟล์ XML ใหม่ เพื่อใช้เป็นส่วนแสดงผลได้ แต่ในที่นี้ใช้ main.xml ที่สร้างให้เราอัตโนมัติ)

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Simple Toast" android:textSize="25sp" android:textStyle="bold" /> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <Button android:id="@+id/btnDisplayToast" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="Display Toast Message"/> </LinearLayout> </LinearLayout>

จากโค๊ดข้างต้น ส่วนของโค๊ด XML ไม่มีคำสั่งที่ควบคุม Toast เนื่องจากเราสามารถเรียกใช้งาน Toast จากโค๊ดจาวาได้เลย

5. แก้ไข Activity Class “MainActivity” ที่ src > com.androidjump.app.simpletoast > MainActivity ดังนี้ เพื่อให้แอพพลิเคชั่นทำงานได้อย่างถูกต้อง

package com.androidjump.app.simpletoast; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; // 1 import android.widget.Toast; public class MainActivity extends Activity { /** Called when the activity is first created. */ private Button btnDisplayToast; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnDisplayToast = (Button)findViewById(R.id.btnDisplayToast); btnDisplayToast.setOnClickListener( new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub // 2 Toast.makeText(MainActivity.this, "Here is TOAST message", Toast.LENGTH_SHORT).show(); } } ); } } 

จากโค๊ดข้างต้น ส่วนของโค๊ด JAVA ที่ควบคุม Button คือข้อ 1-4 ดังนี้
1. import คลาส Toast เข้ามาเพื่อให้สามารถใช้งาน Toast ในคลาส MainActivity ได้
2. เมื่อเรากดปุ่ม “Display Toast Message” โปรแกรมจะแสดงข้อความขึ้นมาจาก Toast โดยการเรียกใช้งาน Toast นั้น มีรูปแบบการใช้งานดังนี้

Toast.makeText(context, text, duration).show()

เมธทอด “maketext” คือเมธทอดที่ใช้สร้างกล่องข้อความ Toast โดยสร้างจากองค์ประกอบ 3 ตัว คือ context, text, และ duration

context คือคลาสที่จะให้แสดง Toast ขึ้นมา ในที่นี้คือคลาส MainActivity เราจึงใช้เป็น MainActivity.this เพื่อบอกให้ Android รู้ว่าใช้คลาสตัวมันเอง หากเราใช้แค่ this อย่างเดียว จะทำให้ Android เข้าใจว่าเรากำลังอ้างอิงไปยัง Interface “OnClickListener” ซึ่ง Interface นี้จะใช้งาน Toast ไม่ได้
text คือข้อความที่เราต้องการให้แสดงใน Toast
duration คือระยะเวลาที่ Toast แสดงบนหน้าจอ แบ่งออกเป็น 2 ระยะเวลา
1. Toast.LENGTH_SHORT ใช้สำหรับแสดงข้อความเป็นระยะเวลาสั้นๆ เหมาะสำหรับข้อความสั้นๆ
2. Toast.LENGTH_LONG ใช้สำหรับแสดงข้อความเป็นระยะเวลานานขึ้น เหมาะสำหรับข้อความยาวๆ
แต่ทั้ง 2 ระยะ ก็แสดงไม่กี่วินาที

เมธทอด “show()” คือเมธทอดที่ใช้แสดงกล่องข้อความ Toast ขึ้นมา

ดังนั้นจากโค๊ดตัวอย่าง เราจึงเขียนคำสั่งใช้งาน Toast ได้ดังนี้

Toast.makeText(MainActivity.this, "Here is TOAST message", Toast.LENGTH_SHORT).show();

จากนั้นรันโปรแกรม คลิกขวาที่โปรเจ็ค SimpleToast เลือก Run As -> Android Application โปรแกรมจะทำงานดังที่กล่าวข้างต้น

 

credit : http://www.androidjump.com/droidjump-android-tutorial-13-toast/

NFC บน Nexus S

เผอิญมีโอกาสได้ทำงานเกี่ยวกับ NFC บน Nexus S ก็เลยมาแบ่งปันประสบการณ์ว่าการที่ทีมแอนดรอยด์บอกว่า Android 2.3 Gingerbread สนับสนุน NFC นั้นมันเป็นอย่างไร

NFC คืออะไร

ก่อนอื่นก็คงขอพูดโดยคร่าวๆก่อนว่า NFC คืออะไร

NFC ย่อมาจาก Near Field Communication หรือการสื่อสารด้วยการจับให้อุปกรณ์มาอยู่ใกล้ๆกัน โดยระยะทำการจะอยู่แค่เพียง 5 ซม. เรียกว่าแทบจะจูบปากกันแล้วทีเดียว โดยอุปกรณ์ทั้งสองจะใช้การเหนี่ยวนำของขดลวดในการสื่อสารซึ่งกันและกัน หากนึกไม่ออกมันก็คือบัตรรถไฟฟ้าที่เราแค่แตะประตูก็เดินเข้าไปได้แล้วนั่น เอง

แต่เจ้าสิ่งที่เราเห็นบนรถไฟฟ้าอันนั้นจริงๆเรียกว่า Proximity หรือถ้าเรียกอีกชื่อหนึ่งที่คนอาจจะคุ้นเคยกว่าคือ RFID (ซึ่งจริงๆแล้วมันคือคนละคำกัน RFID เป็น Proximity แบบหนึ่ง) การทำงานจะต้องมีตัวที่เรียกว่าตัวอ่าน (Reader) และการ์ด (Tag)

ส่วน NFC นั้นก็คล้ายกับ RFID อีกนั่นแหละเพราะเบื้องหลังมันคือ Proximity ตัวหนึ่งและมันสนับสนุนเทคโนโลยี RFID ได้แบบเต็มรูปแบบ เราสามารถใช้ NFC ในการอ่านหรือเขียน RFID ได้ทันที แต่สิ่งที่ NFC เหนือกว่าคือ NFC สามารถปรับเปลี่ยนตัวเองให้เป็น Reader หรือ Tag ก็ได้! ยังผลให้เราสามารถนำมันไปใช้ในการสื่อสารระหว่างกันได้ โดยจะมีอยู่ 3 โหมดการใช้งานที่ใช้กันคือ

1) ทำตัวเป็น Reader
2) แปลงร่างเป็น Tag
3) คุยกันแบบ P2P

Android 2.3 พร้อมสนับสนุน NFC มันเป็นอย่างไรกัน!?!

ตอนแรกก็ไม่เข้าใจว่ามันสนับสนุนยังไงกัน ก็เลยมาลองเล่นเอง ปรากฎว่ามันทำงานเป็น Intent ตัวนึง …. แบบนี้!

เราสามารถสั่งเปิดปิด NFC ได้เหมือนที่ทำกับ WiFi และ Bluetooth

และทันทีที่เราเปิด ระบบจะสั่งยิงสัญญาณออกไปเพื่อรอรับสัญญาณกลับอย่างต่อเนื่อง แน่นอนว่ากินไฟแน่ๆ ถึงจะไม่ได้มากมายแต่ก็ทำให้แบตคุณหมดเร็วขึ้นอย่างเห็นได้ชัดชัวร์! ดังนั้นปิดได้ขอให้ปิดไว้

และเมื่อมี Tag มาเข้าใกล้ ระบบก็ยิง Intent ที่ชื่อว่า android.nfc.action.TAG_DISCOVEREDg ออกมา จากนั้นโปรแกรมทั้งหลายที่เรียกดัก Intent ไว้ก็จะเสนอหน้าออกมาให้เลือก

ซึ่งตรงนี้มันก็เหมือนกับว่าเราจะสั่งเปิดเว็บ ถ้าเราลงโปรแกรมไว้หลายตัว มันก็จะเด้งให้เลือกว่าจะเปิดเว็บด้วยโปรแกรมอะไร

เมื่อเราเลือกโปรแกรมเสร็จ ก็สามารถนำ ID และข้อมูลในการ์ดไปใช้งานต่อได้ทันทีในฟังก์ชั่น resolveIntent(…)

ตรงนี้จะเห็นความไม่สะดวกของการใช้งานเกิดขึ้นแล้ว เพราะสิ่งที่แอนดรอยด์วาง NFC ไว้คือการยิง Intent ออกมาให้โปรแกรมต่างๆรับไป แต่มันเป็นไปไม่ได้เลยที่ทุก Service ที่เกิดจาก NFC จะรวมอยู่ในโปรแกรมเดียวกัน ดังนั้นจึงไม่สามารถเลือกโปรแกรมใดโปรแกรมหนึ่งเป็น Default Application ได้ในการใช้งานจริง

ทำไม NFC ถึงน่าสนใจ

ข้อเด่นของ Open NFC คุณเพียงแค่แตะอุปกรณ์สื่อสารที่มีเทคโนโลยี NFC บน NFC tag
เพื่อทำกิจกรรมอย่างใดอย่างหนึ่ง เช่น การเช็คอิน ณ สถานที่แห่งใดแห่งหนึ่ง
การเก็บแต้มสะสมของร้านค้า หรือการเข้าเว็บไซต์โดยไม่ต้องพิมพ์ URL นอกจากนี้
ยังสามารถใช้ NFC tag เพื่อโปรโมตแอพพลิเคชั่นบนร้านค้าออนไลน์ได้อีกด้วย
อาทิ แทนที่จะเข้าไปยังร้านค้าออนไลน์เพื่อหาแอพพลิเคชั่น
คุณเพียงแค่แตะบน tag ก็สามารถดาวน์โหลดแอพได้ทันที

NFC tag ซึ่งมีราคาไม่กี่บาท จะมอบศักยภาพมหาศาลให้กับผู้โฆษณา ผู้ค้าปลีก และอื่นๆ
เพื่อให้เข้าถึง มอบสิทธิประโยชน์ และติดต่อสื่อสารกับลูกค้า
เราสามารถติดตั้ง NFC tag ที่ไหนก็ได้ ไม่ว่าจะเป็นร้านขายโทรศัพท์ ซูเปอร์มาร์เก็ต หรือร้านกาแฟ
ซึ่งสามารถวัดผลลัพธ์ได้และเห็นผลทันที

การเปิดศักยภาพ NFC tag ไม่ต้องอาศัยโครงสร้างพื้นฐานอะไรมากมาย
เพียงแค่มีการวางตลาดอย่างแพร่หลายของอุปกรณ์สื่อสารที่มีเทคโนโลยี NFC
และการตระหนักถึงคุณประโยชน์ของ NFC tag ในกลุ่มผู้โฆษณาเท่านั้น

NFC on Nokia C7

นอกจากการอ่าน tag แล้ว Open NFC ยังสามารถเชื่อมต่อโทรศัพท์ NFC 2 เครื่องได้ง่ายๆ
เพียงแค่นำเครื่องทั้งสองแตะกัน คุณก็สามารถแบ่งปันเนื้อหา เช่น รูปถ่าย หรือการเล่นเกมส์คู่
โดยไม่เสียเวลาเชื่อมต่ออย่างบลูทูธ ล่าสุดเกมส์สุดฮิตอย่าง Angry Birds
ได้ออก Angry Birds Free With Magic
เกมส์เวอร์ชั่นพิเศษสำหรับอุปกรณ์สื่อสารที่มีเทคโนโลยี NFC อย่าง Nokia C7 ซึ่งได้ซ่อนขั้นพิเศษของเกมส์เอาไว้
ซึ่งจะเข้าไปเล่นได้ต่อเมื่อนำโทรศัพท์ NFC ของคุณแตะกับ Nokia C7 หรืออ่าน NFC tag
ที่จะนำคุณสู่ร้านค้าออนไลน์ของโนเกียเพื่อดาวน์โหลดขั้นพิเศษของเกมส์

nokia bluetooh headset

Open NFC ยังสามารถเชื่อมต่อโทรศัพท์มือถือของคุณไปยังลำโพงไร้สาย
หรือหูฟังที่มีเทคโนโลยี NFC ได้อย่างง่ายดาย ถ้าคุณกลับถึงบ้านขณะฟังเพลงจากโทรศัพท์ด้วยหูฟังค้างอยู่
เพียงแค่แตะโทรศัพท์มือถือกับลำโพง NFC ที่บ้าน คุณก็เปลี่ยนไปฟังเพลงจากลำโพงได้อย่างต่อเนื่อง
เพียงเท่านี้ก็ทำให้จินตนาการถึงอุปกรณ์และแอพพลิเคชั่นใหม่ๆ ที่สามารถใช้เทคโนโลยีนี้ได้อีกมากมาย

สรุปคือการใช้งานจะต้อง (1) เปิด NFC (2) แตะบัตร (3) เลือกโปรแกรมที่จะเปิด … ซึ่งไม่สะดวกเอาเลยหละจริงๆแล้ว

ข้อดีและข้อเสียของ NFC

ข้อดี
– อ่านทะลุวัสดุหลายๆชนิดได้เช่นกระจก(บางๆ) หรือเนื้อคน
– การตรวจจับและเริ่มต้นเชื่อมต่อทำได้เร็วมาก
– ใช้ในที่มืดได้
– นำไปใช้แทนระบบ RFID ที่มีอยู่ในชีวิตประจำวันได้ … ตามหลักการแล้วเราสามารถเปลี่ยนมือถือของเราเป็นบัตรรถไฟฟ้าได้ทันที (แต่ไม่ใช่แบบข่าวใน DroidSans ที่เพิ่งเขียนไปนะ!)
– อายุการใช้งานยืนยาว อายุขัยค่อนข้างสูง

ข้อเสีย
– ใช้อ่านทะลุโลหะไม่ได้
– นำ Tag ไปวางไว้บนโลหะจะอ่านไม่ได้
– ความเร็วในการรับส่งข้อมูลยังไม่สูงมากนัก
– ต้นทุนสูงกว่า Barcode และ 2D Barcode (มากกกกก)
– ต้องพึ่งพา Hardware พิเศษ ต่างกับ 2D Barcode ที่ใช้กล้องมือถือธรรมดาๆได้เลย

การประยุกต์ใช้ NFC

– โรงแรมหัวใสพัฒนาระบบ Check-in โรงแรมตั้งแต่เราอยู่ที่สนามบิน เมื่อถึงโรงแรมเราสามารถนำมือถือไปเปิดประตูห้องได้ทันที!

– ซื้อหนังสือพิมพ์ได้ในเวลาไม่กี่วินาที โดยเฉพาะในช่วงเร่งรีบยามเช้า

– รับตารางเวลาต่างๆ เพียงแค่แตะโทรศัพท์มือถือกับ smart poster

– โดยสารรถประจำทาง รถไฟ หรือรถไฟฟ้า เพียงโหลดข้อมูลบัตรโดยสารเข้าไปในโทรศัพท์ และแตะโทรศัพท์ของคุณกับประตูทางเข้า NFC

– แลกเปลี่ยนข้อมูลการติดต่อ และข้อมูลอื่นๆ กับเพื่อนหรือเพื่อนร่วมงานโดยเพียงแค่นำโทรศัพท์มาแตะกัน

– ทำ RFID tag ของคุณเอง โดยใส่ข้อมูลการติดต่อ และเชื่อมต่อไปยังบริการมือถือ เช่น ข่าว พยากรณ์อากาศ ราคาหุ้น

– อุปกรณ์ยืนยันสถานะบุคคล

– บัตรโดยสารเครื่องบิน

– กุญแจอิเล็กทรอนิกส์สำหรับรถยนต์ โรงแรม หรือสำนักงาน

ความคิดเห็นส่วนตัวเกียวกับ NFC

ทั้งนี้ทั้งนั้น NFC ไม่ใช่เทคโนโลยีใหม่เลย หากแต่เป็นเทคโนโลยีที่โนเกียเคยทำมาแล้วเมื่อ 4-5 ปีที่แล้ว จนถึงตอนนี้มีเป็นสิบรุ่นที่มี NFC แต่… NFC ก็ไม่เกิด คงเพราะว่า Target ของ Nokia User ต่างออกไปและไม่คิดที่จะใช้อะไรพวกนี้ แต่พอ Nexus S ประกาศตัวมาว่าสนับสนุนปุ๊บ ก็เริ่มเห็นวี่แววของอนาคตลางๆแล้วหละ ^_^ และยิ่งได้ยินแว่วๆว่า iPhone 5 ก็จะสนับสนุน ดังนั้น … NFC … มาแน่ Laughing out loud

อย่างไรก็ตาม NFC ยังต้องพึ่งพา Hardware โดยเฉพาะในการใช้งาน จึงเกิดเป็นคำถามว่า ดังนั้นเทคโนโลยีนี้จะเกิดหรือไม่ก็ขึ้นอยู่กับผู้ผลิตโทรศัพท์มือถือเป็น ส่วนใหญ่ หากสุดท้าย Device ยังไม่สามารถเข้าถึงคนส่วนใหญ่ได้ เทคโนโลยีนี้ก็ยากนักที่จะเกิดในวงกว้าง

Resource ที่น่าสนใจสำหรับนักพัฒนา

1. ใน SDK ที่โหลดมา ค้นหาตัวอย่างที่ชื่อว่า NFCDemo ตัวนี้เหมาะกับการเริ่มต้นมาก

2. สำหรับการต่อยอด ดูมาหลายเว็บแล้วพบว่าเว็บนี้เวอร์คที่สุด ไปอ่านกันได้เลย http://programming-android.labs.oreilly.com/ch18.html

อย่างไรก็ตามมันจะมีเรื่ององค์ความรู้เกี่ยวกับ RFID หลายประการที่อาจจะต้องศึกษากันเพิ่มอีก อันนี้ก็ลองหาอ่านหาลองกันดูครับ ซับซ้อนนิดหน่อยแต่ก็ไม่ได้ยากเกินความสามารถแน่นอน ^_^

credit : http://droidsans.com/nfc-experience-on-nexus-s