Android携帯電話はNFCでMifareClassicなどのラベル情報を読み取る


参考記事
Activityのコアコード:
    private NfcAdapter mNfcAdapter;
    private PendingIntent mPendingIntent;

    @Override
    public void onNewIntent(Intent intent) {
        {
            Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
            Log.d("content",readTag(tagFromIntent));
        }
    }
    /**
     *   Activity,     
     */
    @Override
    protected void onStart() {
        super.onStart();
        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
        //    NFC  ,    PendingIntent    
        mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()), 0);
    }

    /**
     *     
     */
    @Override
    public void onResume() {
        super.onResume();
        //          NFC   
        if (mNfcAdapter != null)
            mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
    }
    /**
     *   Activity,      
     */
    @Override
    public void onPause() {
        super.onPause();
        //      
        if (mNfcAdapter != null)
            mNfcAdapter.disableForegroundDispatch(this);
    }

コアメソッドreadTag()は私のツールクラスMyNfcUtilから来て、最後に権限を追加すればいいです.
<uses-permission android:name="android.permission.NFC" />
    <uses-feature android:name="android.hardware.nfc" android:required="true" />

tag.getTechList()のアンドロイドデバイスを取得するNFC機能でサポートできるTagタグの種類:
android.nfc.tech.NfcA
android.nfc.tech.MifareClassic
android.nfc.tech.NdefFormatable

私の携帯電話は以上の3種類しかサポートしていません.その中でMifareClassicはM 1カードとも呼ばれています.ちょうど私の手にはこのカードがあります.アンドロイドデバイスを使って取得したカードのidをbyte[]配列に読み込み、16進数に変換し、10進数に変換し、0094319031に変換し、10桁未満で0を補う必要があります.これは私が最後に使うカードIDです.
まとめ:AndroidデバイスNFCを使用してラベル情報を読み取る過程は以下の通りである:Activityで相応の方法を書き換え、NFCをオフにする関連操作を行い、それから私のツール類MyNfcUtilを呼び出してラベル情報を取得し、最後にプロファイルにNFC権限を追加すればよい.
最後に、NFCがMifareClassicタグを読み取るプロジェクトを紹介します.転送ドアは、外国人がやったと言われています.参考にしてください.ソースアドレスhttp://download.csdn.net/download/zhangxiangliang2/9995799