标签:android style blog http io ar color 使用 sp
从上一篇的NFC支持所类型的卡读取之后,下面要解决的就是NFC的拦截响应,如果这一步没有做,当系统内有多个支持NFC的应用的时候,就会在nfc刷卡的时候弹出多个应用选择,我们需要的场景是,当前应用需要用NFC才去刷卡,然后本应用拦截intent分发(Using the Foreground Dispatch System).
具体的方案:
1.创建PendingIntent来分发要响应的Activity
mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, NFCActivity.class).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); try { ndef.addDataType("*/*"); } catch (IntentFilter.MalformedMimeTypeException e) { throw new RuntimeException("fail", e); } intentFiltersArray = new IntentFilter[]{ndef,};
techListsArray = new String[][]{new String[]{NfcA.class.getName()}};
public void onPause() { super.onPause(); mAdapter.disableForegroundDispatch(this); } public void onResume() { super.onResume(); mAdapter.enableForegroundDispatch(this, pendingIntent, intentFiltersArray, techListsArray); }当然之前要定义NfcAdapter
nfcAdapter = NfcAdapter.getDefaultAdapter(this);这个问题的解决体会到一件事,这个问题在国内的博客论坛都没有搜索到,在StackOverFlow上有一篇
里面的链接指向的是Android develop。。。NFC foreground dispatching.
所有的基础教程都可以在developer中找到,以后再也不瞎折腾了,有问题找google
标签:android style blog http io ar color 使用 sp
原文地址:http://blog.csdn.net/mobilexu/article/details/41862403