我将
Android手机更新为4.0.4,我注意到系统文件夹中出现了一个新的文件nfcee access.xml.根据我的理解,该文件的想法是保留一个签名列表,并允许访问SE和相关的目的只对使用其中一个签名签名的包.到目前为止,这个清单当然是Google电子钱包的签名.
有人知道将来进入这个清单的过程如何?您是否需要直接向Google征求权限?
解决方法
如果您使用手机,您可以修改该文件.该文件包含允许访问安全元素(SE)的签名和包名称列表.签名是十六进制编码的X.509证书.要创建一个,只需添加标签< debug />在文件中,它将打印到logcat的被拒绝SE访问的应用程序的十六进制编码签名,以便于将该文件剪切并粘贴.
要创建可以访问SE的应用程序,您需要将此权限添加到清单中:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
要实际访问SE,您需要通过导入com.android.nfc_extras来访问隐藏的API:
import com.android.nfc_extras.NfcAdapterExtras; import com.android.nfc_extras.NfcAdapterExtras.CardEmulationRoute; import com.android.nfc_extras.NfcExecutionEnvironment;
实现这一目标的最简单的方法是在Android源代码树中编译您的应用程序,方法是将其放在程序包/应用程序中并从中构建.您需要将以下行添加到Android.mk makefile以访问SE API:
LOCAL_JAVA_LIBRARIES := com.android.nfc_extras
com.android.nfc_extras中的函数允许启用和禁用SE,向其发送命令并从中接收响应(与IsoDep.transceive()相当).