NFC 前台发布系统
NFC扫描到的标签Tag最终是需要上报到应用Application进行数据的读写操作。上报的方式现在主要有两种:前台发布、Intent过滤发布。我们先来分析下NFC前台发布系统是如何工作的。
Application首先需要获取NFC的适配器 NfcAdapter实类,通过适配器对外提供的API:enableForegroundDispatch()、disableForegroundDispatch()来打开、关闭前台发布系统。这两个接口必须在Activity处于运行状态时调用,即Activity在屏幕前台,所以才称为前台发布系统。一般将enableForegroundDispatch()放在onResume()的重写中调用,disableForegroundDispatch()放在onPause()的重写中调用。
详细的时序图如下:
Tag的获取请参考《NFC Discovery》这篇文章,当有匹配filters、techLists的Tag上报时,这套前台发布系统就会起作用,直接将标签发布给前台应用而不进行Intent过滤发布,都不匹配再进行Intent过滤发布,所以前台发布系统的优先级高于Intent过滤发布系统。
上层Activity接收到Intent后,从中解析出Tag、Ndef等进行数据的读写。如何读写数据网上的教程很多,这里就不做过多描述。
更多互联互通技术,欢迎关注微信公众号:Connectivity