欢迎来到天天文库
浏览记录
ID:34760441
大小:217.68 KB
页数:10页
时间:2019-03-10
《安卓nfc开发学习笔记》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、大家学习android开发建议首选android开发文档,该文档在你下载的sdk中,路径:/sdk/docs/index.html目前NFC应用的大的框架上的理解:我使用的APILEVEL是19,支持的API有三个:android.nfc,android.nfc.cardemulator,android.nfc.techNFC在手机上的应用大体分为两类:读卡器和卡android.nfc.cardemulator接口是为NFC作为卡应用提供的接口,在较低版本的API上是没有的android.nfc.tech,android.nfc接口是为NFC作
2、为读卡器应用提供的接口首先说作为卡,nfc有两种实现方式,一个是使用NFC芯片作为卡,另一个是使用SIM作为卡Figure1.NFCcardemulationwithasecureelement.至于从读卡器发送的指令到底是传递到NFC芯片还是SIM由NFCControler控制,图中SecureElement是指SIM,Host-CPU指NFC芯片android提供HostApduService用于NFC芯片,OffHostApduService用于SIM芯片,传递方向在res/xml文件中通过AID来控制ps:Host-BasedCardE
3、mulator简称为HCE代码实现:AndroidManifest.xml中配置service,因为作为卡实现的话,NFC功能是作为service存在的 4、d:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> res/xml/apduservice.xml中配置service响应的AID5、apdu-servicexmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/servicedesc" android:requireDeviceUnlock="false"> 6、-filterandroid:name="F0010203040506"/> 配置文件完成后编写service的处理方法:NFCService需要继承HostApduService,如果需要与Activity通信,建议采用广播方式也可以自己实现观察者模式,只是这样就需要持有Activity的引用,感觉不太好NFCService.javapublicclassNFCServiceextendsHostApduService{ privateIntentintent=newIn7、tent("com.example.communication.RECEIVER"); @Override publicvoidonCreate() { //启动Acivity Intenti=newIntent(); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//需要启动的Activity不是当前Activity的时候需要用FLAG_ACTIVITY_NEW_TASK i.setAction("com.apdu.nfc"); getA8、pplication().startActivity(i); Toast.makeText(getApplicationContext(),
4、d:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
5、apdu-servicexmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/servicedesc" android:requireDeviceUnlock="false"> 6、-filterandroid:name="F0010203040506"/> 配置文件完成后编写service的处理方法:NFCService需要继承HostApduService,如果需要与Activity通信,建议采用广播方式也可以自己实现观察者模式,只是这样就需要持有Activity的引用,感觉不太好NFCService.javapublicclassNFCServiceextendsHostApduService{ privateIntentintent=newIn7、tent("com.example.communication.RECEIVER"); @Override publicvoidonCreate() { //启动Acivity Intenti=newIntent(); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//需要启动的Activity不是当前Activity的时候需要用FLAG_ACTIVITY_NEW_TASK i.setAction("com.apdu.nfc"); getA8、pplication().startActivity(i); Toast.makeText(getApplicationContext(),
6、-filterandroid:name="F0010203040506"/> 配置文件完成后编写service的处理方法:NFCService需要继承HostApduService,如果需要与Activity通信,建议采用广播方式也可以自己实现观察者模式,只是这样就需要持有Activity的引用,感觉不太好NFCService.javapublicclassNFCServiceextendsHostApduService{ privateIntentintent=newIn
7、tent("com.example.communication.RECEIVER"); @Override publicvoidonCreate() { //启动Acivity Intenti=newIntent(); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//需要启动的Activity不是当前Activity的时候需要用FLAG_ACTIVITY_NEW_TASK i.setAction("com.apdu.nfc"); getA
8、pplication().startActivity(i); Toast.makeText(getApplicationContext(),
此文档下载收益归作者所有