我正在編寫需要讀取NFC標籤的應用。而不是閱讀標籤通過意圖過濾器打開一個新的應用程序的行爲,我希望我目前打開的應用程序只需讀取附近的標籤。Android:如何使用當前應用讀取NFC標籤
我試圖使用enableForegroundDispatch()但沒有運氣。無論何時出現NFC標籤,我的設備都會打開標籤「標籤」應用程序。
我到目前爲止的代碼是:
final Intent intent = new Intent(activity.getApplicationContext(), activity.getClass());
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
final PendingIntent pendingIntent = PendingIntent.getActivity(activity.getApplicationContext(), 0, intent, 0);
IntentFilter[] filters = new IntentFilter[1];
String[][] techList = new String[][]{};
filters[0] = new IntentFilter();
filters[0].addAction(NfcAdapter.ACTION_NDEF_DISCOVERED);
filters[0].addCategory(Intent.CATEGORY_DEFAULT);
try {
filters[0].addDataType(MIME_TEXT_PLAIN);
} catch (MalformedMimeTypeException e) {
throw new RuntimeException("Check your mime type.");
}
adapter.enableForegroundDispatch(activity, pendingIntent, filters, techList);
(這基本上是從一個教程,我發現複製)。
有誰知道這是否是正確的方法去做這件事? 如何防止標準「標籤」應用打開,而不是我自己的應用收到NDEF_DISCOVERED意圖。
感謝
什麼數據你有你的標籤?你想觸發一個特定的標籤類型(見'android.nfc.tech。*'命名空間)或任何標籤? – 2014-09-01 17:46:40
我需要的唯一東西(我認爲標籤上唯一的東西)是ID – chris 2014-09-02 08:05:18
這並不能真正回答我的問題。 – 2014-09-02 08:40:35