2016年6月21日 星期二

Android-Read RFID Tag Id

尚未整理
雖然網路上範例已經多到快淹出來了
但之後還是可能會在拿來應用
所以特別在寫這一篇

特別是以下這三種標籤分類 :

1 . NEEF_DISCOVERED : 必須可以利用 NDEF 格式傳輸的 Tag ,
例 : 文字。

2 . TECH_DISCOVERED : Tag 必須符合設定的規範才被觸發
例 :
<tech-list>
    <tech>android.nfc.tech.NfcA</tech>
    <tech>android.nfc.tech.MifareClassic</tech>
    <tech>android.nfc.tech.Ndef</tech>
</tech-list>

3 . TAG_DISCOVERED : 只要是 Tag 即可被處發。

相信您對以下這張圖不陌生吧... ( 只要找 NFC 相關都會有此圖












簡短說明 : 此圖內容說明有關優先權( 綠框由 上_高 到 下_低 )NDEF > TECH > TAG
,如果 Tag 非 NDEF,那就會在判斷是否為 TECH 內的,如果還是沒有,則直接由
 TAG 傳到 Activity。


1 . 開啟對應權限
<uses-permission android:name="android.permission.NFC" />

<uses-feature
    android:name="android.hardware.nfc"
    android:required="true" />

2 . 最小版本限制
<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="21" />

3 . 條件


4 . 在 Actvitiy OnCreate 判斷 NFC 是否支援、使否開啟
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.nfc.NfcAdapter;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class MainActivity extends Activity {  

    private TextView textNFC;
    private NfcAdapter nfcAdapter;
    private PendingIntent mPendingIntent;

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

        textNFC = (TextView) findViewById(R.id.textNFC); 
        
        nfcAdapter = NfcAdapter.getDefaultAdapter(this);   
        if (nfcAdapter == null) {
            //nfc not support your device.
            return;
        }
        mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
                getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);

    }  

    @Override  
    protected void onResume() {  
        super.onResume();  
        
        nfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
        
    }  

    @Override  
    protected void onPause() {  
        super.onPause();  
        
        if (nfcAdapter != null) {
            nfcAdapter.disableForegroundDispatch(this);
        }
    }  

    @Override  
    protected void onNewIntent(Intent intent) {  
        if (intent.getAction().equals(NfcAdapter.ACTION_TAG_DISCOVERED)) {  
            Log.d("NFCTest", "Tag Id : " + ByteArrayToHexString(intent  
                    .getByteArrayExtra(NfcAdapter.EXTRA_ID)));
        }  
    } 
 
    private String ByteArrayToHexString(byte[] inarray) {  
        int i, j, in;  
        String[] hex = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A",  
                "B", "C", "D", "E", "F" };  
        String out = "";  
        for (j = 0; j < inarray.length; ++j) {  
            in = (int) inarray[j] & 0xff;  
            i = (in >> 4) & 0x0f;  
            out += hex[i];  
            i = in & 0x0f;  
            out += hex[i];  
        }  
        return out;  
    }  

}   


參考資料 : Android NFC tag 近距離無線通訊
參考資料 : Android developer_NFC
參考資料 : NFC学习
參考資料 : Android: How to read NFC tag with current app
參考資料 : Tag的三种相应模式

2016年6月19日 星期日

Android-What's NFC?

How get nfc tag id for Rfid card?

NFC ( Near Field Communication ) : 近場通訊。

還是不懂 ? ( 當然...,因為還沒解釋。
不要一頭栽下去 !!!
不要一頭栽下去 !!!
不要一頭栽下去 !!!
只需要大概了解運作原理

我們以簡單大賣場為例( 簡單說明 NFC ) :
但必須要先了解有兩大個角色
1 . RFID 
( 化妝品、衣物、價值較高的物品都會有 )
( 悠遊卡、磁扣、門禁卡都會有 )














2 . RFID 感應器 ( 請自行 Google 圖片 RFID 感應器,因會有版權問題 )























( 請原諒筆者的美術天分 )

---------------------------------------------------

請回答以下問題 ( 想引導讀者快速進入,如有需改進的地方
,請提出,筆者會立即更改 ) :

1 . 在日本用什麼語言跟人互相溝通 ?
Ans : 日語 。

2 . 在美國用什麼語言跟人互相溝通 ?
Ans : 美語 。

3 . 在英國用什麼語言跟人互相溝通 ?
Ans : 英語 。

4 . 在RFID世界用什麼傳輸跟機器互相交換資料 ?
Ans : NFC















1 . RFID Card 內有 IC 晶片,可仔細看第一張圖
2 . Scaner 可感應 RFID 內的 IC 晶片序號
3 . 感應到序號後,交由電腦清除庫號( 使用者預設的動作 ),
以免離開收銀台被,逼逼叫! 逼逼叫! 逼逼叫!
4 . 以此範例,RFID IC 只是代表一個唯一的 ID
--------------------------------------------------------

注意 :
NFC有分頻率 OTZ
這就是為甚麼最前面第一點又有分類的原因
別想太複雜
就很像是在台灣雖然都是講國語
但也有閩南語、客家話...等















( 轉貼 : RFID技術重要參數 )

參考資料 : RFID技術重要參數
參考資料 : RFID標準發展現況
參考資料 : 無線射頻辨識_wiki

歡迎轉載,請註明出處。

2016年6月16日 星期四

Servlet-什麼是 Tomcat?

1 . 什麼是 Tomcat :
是 Apache 底下的專案,提供有關 Web 伺服器的管理與功能

2 . 為什麼 Tomcat 和 Servlet 有關係?
通常若只存在 Servlet ,只算是空殼,他必須要有伺服器配合
,他能發揮他的價值。


現在可以想像,您要開一家超商,裡面有店員、商品...等。
但這只是想像 !
但這只是想像 !
但這只是想像 !

尚未實作 !
尚未實作 !
尚未實作 !




















如果要實現這些,就必須要被執行
這就需要 Tomcat 來去實現

歡迎轉載,請註明出處。

下一篇 : Servlet-什麼是 Servlet?( 一 )

2016年6月15日 星期三

Servlet-什麼是 Servlet?( 二 )

上一篇 : Servlet-什麼是 Servlet?( 一 )

上一篇我們用我們生活周遭的例子在說明
這篇我們用比較正式( 嗑! 嗑! 嗑!

那我們再請上一篇的圖,再加工一下 :


















差異 : 
1 . 請求改用網址
2 . 回應改用網址或參數
3 . 使用 Tomcat 架設指定商家 ( 環境 )

再重新複習一下角色 :
1 . Browser
2 . Servler ( 此角色必須要有環境才能存活_Tomcat )


歡迎轉載,請註明出處。

Servlet-什麼是 Servlet?( 一 )

Servlet : 寫在伺服器端的程序,最主要交換式瀏覽修改數據

我相信說到這裡也是一堆人充滿著問號........( OTZ

我們先假設一個情境吧
比如現在小明在 7-11


















我們所設置的 Servlet 就比較像是店員的角色

小明對指定的位置發出請求,店員就會相對的回應
Browser 對指定的位置發出請求,Servlet 就會相對的回應

簡單的說,有問就有答。
就目前先休息一下吧 !!!

歡迎轉載,請註明出處。

下一篇 : Servlet-什麼是 Servlet?( 二 )

2016年6月13日 星期一

Server-如何在 Tomcat 執行 Web 專案

更新日誌 :
20160704 If eclipse preferences has not server ?
A : Eclipse / Help / Install new software /http://download.eclipse.org/releases/kepler/
and check Web, XML, Java EE and OSGi Enterprise Development

此篇
1 . 如何創立 Web 專案
2 . 如何把專案執行到 Tomcat 上


1 . 創立 Web 專案 ( Dynamic Web Project )

 2 . 專案架構















3 . 新增 Jsp 網路頁面














4 . 在指定檔案夾下生成檔案














5 . 因為頁面只有 Title ,看不出結果
     我們在 Body 層內輸入任意文字

-----------------------
網頁已經好了,要如何執行在 Server 上哩??
6 . 開始專案,並且執行在 Server 上














7 . 出現 404錯誤!?
















參考資料 : [程式筆記]myEclipse10教學 - 架設tomcat與第1個網頁
參考資料 : Java Web架站 (J1.0) Tomcat Apache Eclipse 設定
參考資料 : Servlet 第一個Hello World
參考資料 : Java Servlet 3.0 裡的 @WebServlet
參考資料 : Java Tutorial 第三堂(3)使用 Servlet、JSP 開發 Web 應用程式

參考資料 : Jsp-Servlet Annotations Hello World Example Project in Eclipse


歡迎轉載,請註明出處。

Server-如何在 Eclipse 建立 Tomcat 伺服器

How build server by tomcat ?

如果我們想在自己家中或任意點架設簡易伺服器要怎辦?
只需要以下的步驟就可以輕鬆完成囉

PS: 請確認 JDK 是否安裝( 設置 )完畢:


1 . 下載 Tomcat  : Apache Tomcat














2 . 選擇自己的作業系統版本下載
     解壓縮至自己規範的路徑下














3 . 設定 Eclipse 的 Server 環境,並且選擇對應版本。


















4 . 將路徑寫至對應表格內














5 . 完成設定














6. 設定 Toolbar ( Server )
PS: 如果視窗沒有的話,請 Windows>See View>Other>Server 



















7. 開啟伺服器


8. 啟動完成紀錄







參考資料 : Java Web架站 (J1.0) Tomcat Apache Eclipse 設定
參考資料 : Servlet 教程

歡迎轉載,請註明出處。