博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xamarin如何使用终端设备的NFC功能传递卡号等信息给Web页面(Android)
阅读量:5041 次
发布时间:2019-06-12

本文共 2464 字,大约阅读时间需要 8 分钟。

一、前提条件,App必须具有NFC权限。

 

二、项目中加入监控类NFCCatchActivity.cs

[Activity(Label = "NFCCatch",Theme = "@android:style/Theme.NoDisplay")]    [IntentFilter(new[] { "android.nfc.action.TECH_DISCOVERED" })]    [MetaData("android.nfc.action.TECH_DISCOVERED", Resource = "@xml/nfc_tech_filter")]    public class NFCCatchActivity : Activity    {        NfcAdapter mNfcAdapter;        PendingIntent mPendingIntent;        protected override void OnCreate(Bundle savedInstanceState)        {            base.OnCreate(savedInstanceState);            mNfcAdapter = NfcAdapter.GetDefaultAdapter(this);            if (mNfcAdapter == null)            {                //textViewNFC.Text = "NFC is not available on this device.";            }            else            {                mPendingIntent = PendingIntent.GetActivity(this, 0, new Intent(this,                typeof(NFCCatchActivity)), PendingIntentFlags.UpdateCurrent);                OnNewIntent(Intent);            }        }        protected override void OnResume()        {            base.OnResume();            if (mNfcAdapter != null)                mNfcAdapter.EnableForegroundDispatch(this, mPendingIntent, null, null);        }        protected override void OnPause()        {            base.OnPause();            if (mNfcAdapter != null)                mNfcAdapter.DisableForegroundDispatch(this);        }        public static string ByteArrayToString(byte[] ba)        {            string hex = BitConverter.ToString(ba);            string rtnStr = "";            string timeN = DateTime.Now.ToString("ssmmHHddMMyyMMyyddHHmmssMMddHHmm");            string tmp1 = "";            string tmp2 = "";            }            rtnStr = tmp1 + hex + tmp2;            return rtnStr;        }        protected override void OnNewIntent(Intent intent)        {            base.OnNewIntent(intent);            Intent = intent;            Tag tag = (Tag)intent.GetParcelableExtra(NfcAdapter.ExtraTag);            string cardID = ByteArrayToString(tag.GetId());//本活动为后台运行,在获取到IC卡号之后,调用主活动中的方法处理实际业务,如反馈给H5页面。            MainActivity.instance.SetNFCData(cardID);        }    }
NFC处理类

 

三、与之相关的主活动方法

public void SetNFCData(string nfcid)        {            //EvaluateJavascript不会刷新页面            //调用H5页面的函数,赋值给文本框或变量都可以            string script = "javascript:SetNFCID('"+ nfcid + "');";            web_view.EvaluateJavascript(script, null);        }

四、由此,就可以实现在终端上感应源,获取源的信息到Web页面之中了。

 

转载于:https://www.cnblogs.com/imes/p/9770674.html

你可能感兴趣的文章
数据库连接
查看>>
python中数据的变量和字符串的常用使用方法
查看>>
等价类划分进阶篇
查看>>
delphi.指针.PChar
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
java 字符串转json,json转对象等等...
查看>>
极客前端部分题目收集【索引】
查看>>
第四天 selenium的安装及使用
查看>>
关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)...
查看>>
KMPnext数组循环节理解 HDU1358
查看>>
android调试debug快捷键
查看>>
【读书笔记】《HTTP权威指南》:Web Hosting
查看>>
Inoodb 存储引擎
查看>>
数据结构之查找算法总结笔记
查看>>
Linux内核OOM机制的详细分析
查看>>
Android TextView加上阴影效果
查看>>
Requests库的基本使用
查看>>
C#:System.Array简单使用
查看>>
C#inSSIDer强大的wifi无线热点信号扫描器源码
查看>>
「Foundation」集合
查看>>