2011-04-12 38 views
0

我正在編寫Android應用程序中的NFC應用程序,並且在編寫標籤時遇到了一些問題。我已經能夠寫一個標籤,但爲了做到這一點,我使用清單中的intent-filters來檢測它。但是,我想要做的是直接使用前臺調度程序處理標記。我能夠用前臺調度程序「捕捉」NDEF_DISCOVERED標記,但我不知道如何以相同的方式使用TECH_DISCOVERED。Android NFC TECH_DISCOVERED與前臺調度程序

該代碼可以使用NDEF_DISCOVERED:

// Setup an intent filter for all MIME based dispatches 
    IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); 
    try { 
     ndef.addDataType("*/*"); 
    } catch (MalformedMimeTypeException e) { 
     throw new RuntimeException("fail", e); 
    } 
    mFilters = new IntentFilter[] { 
      ndef, 
    }; 

    // Setup a tech list for all NfcF tags 
    mTechLists = new String[][] { new String[] { NfcF.class.getName() } }; 

但我應該做TECH_DISCOVERED ????我試着這個,它不起作用:

IntentFilter ntech = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED); 


    mFilters = new IntentFilter[] { 
      ntech, 
    }; 

    // Setup a tech list for all NfcF tags 
    mTechLists = new String[][] { new String[] { NfcF.class.getName() } }; 
} 

回答

0

我希望你會自己想通了。 但是,對於那些沒有這樣做的人: 您應該在mTechLists中指定適合的標籤技術,您希望處理它。沒有必要更改意圖過濾器來指定ACTION_TECH_DISCOVERED,它應該與ACTION_NDEF_DISCOVERED一起正常工作。 乾杯!