dcloud Native.js NFC开发
2015-11-26 23:32
726 查看
这段代码感谢DCloud_Android_磊子提供,作为我们学习研究dcloud移动app技术的一个参考。
function test_nfc() { var main = plus.android.runtimeMainActivity(); var Intent = plus.android.importClass('android.content.Intent'); var Activity = plus.android.importClass('android.app.Activity'); var PendingIntent = plus.android.importClass('android.app.PendingIntent'); var IntentFilter = plus.android.importClass('android.content.IntentFilter'); var NfcAdapter = plus.android.importClass('android.nfc.NfcAdapter'); var nfcAdapter = NfcAdapter.getDefaultAdapter(main); var intent = new Intent(main, main.getClass()); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); var pendingIntent = PendingIntent.getActivity(main, 0, intent, 0); var ndef = new IntentFilter("android.nfc.action.TECH_DISCOVERED"); ndef.addDataType("*/*"); var intentFiltersArray = [ndef]; var techListsArray = [ ["android.nfc.tech.IsoDep"], ["android.nfc.tech.NfcA"], ["android.nfc.tech.NfcB"], ["android.nfc.tech.NfcF"], ["android.nfc.tech.Nfcf"], ["android.nfc.tech.NfcV"], ["android.nfc.tech.NdefFormatable"], ["android.nfc.tech.MifareClassi"], ["android.nfc.tech.MifareUltralight"] ]; document.addEventListener("newintent", function() { console.log('newintent'); setTimeout(handle_nfc_data, 1000); }, false); document.addEventListener("pause", function(e) { if (nfcAdapter) { nfcAdapter.disableForegroundDispatch(main); console.log('pause'); } }, false); document.addEventListener("resume", function(e) { if (nfcAdapter) { console.log('resume'); nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray); } }, false); nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray); } function handle_nfc_data() { var main = plus.android.runtimeMainActivity(); var runtimeIntent = main.getIntent(); var b = runtimeIntent.getExtras(); plus.android.importClass(b); var set = b.keySet(); plus.android.importClass(set); var sb; var i = set.iterator(); plus.android.importClass(i); var hasNest = i.hasNext(); var NfcA = plus.android.importClass("android.nfc.tech.NfcA"); var IsoDep = plus.android.importClass("android.nfc.tech.IsoDep"); var Tag = plus.android.importClass("android.nfc.Tag"); while (hasNest) { var key = i.next(); var v = b.get(key); if (v instanceof NfcA) { var atqa = v.getAtqa(); var sak = v.getSak(); var tag = g.getTag(); plus.android.importClass(tag); var techList = tag.getTechList(); console.log('NfcA Atqa=' + atqa + ";Sak=" + sak + ";techList=" + techList); } else if (v instanceof IsoDep) { var tag = g.getTag(); plus.android.importClass(tag); var techList = tag.getTechList(); console.log('IsoDep techList=' + techList); } else if (v instanceof Tag) { var tag = v; var techList = tag.getTechList(); console.log('Tag techList=' + techList); } console.log(key + ';v=' + v); sb = key + "=" + v + "\n"; hasNest = i.hasNext(); console.log('hasNest=' + hasNest); } }
相关文章推荐
- 【转】JSP中文乱码问题终极解决方案
- 原生JS查找元素
- 《JavaScript权威指南》学习笔记 第三天 找个对象
- JS-小技巧-国家城市联动
- javascript(八)instanceof, typeof, indexOf,valueOf()
- JavaScript中内置函数的使用
- JSOI2013 密码
- 浅谈js中的垃圾两种回收机制
- JavaScript实现自适应窗口大小的网页
- IE8及其以下,特有js event对象坑
- eclipse去掉javascript校验
- Delphi XE6 通过JavaScript API调用百度地图
- Delphi XE6调用javascript
- jsonp跨域解决方案
- 全屏滚动制作!!
- jstl标签库
- JS函数重载解决方案
- Delphi与Javascript的交互
- 轻松学习JavaScript五:JavaScript的变量和数据类型
- fastJson解析