NFCEE_ADMIN权限是签名级别.
但是,是否有可能“欺骗”以在植根电话上获得此许可?也许使用类似于the way ClockSync does it的技术?
我正在尝试使用反射技术来访问NFCExtras:
mAdapter = NfcAdapter.getDefaultAdapter(this);
try {
Class mynfcextras = Class.forName("android.nfc.INfcAdapterExtras");
Method getnfcExtras = mAdapter.getClass().getMethod("getNfcAdapterExtrasInterface");
Object nfcExtras = getnfcExtras.invoke(mAdapter);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但是,当然会出现以下错误:“需要NFCEE_ADMIN权限:用户xxx或当前进程都没有com.android.nfc.permission.NFCEE_ADMIN.”
编辑:当然,我确实向软件包添加了权限,但是在安装过程中将其删除:
W/PackageManager( XXX): Not granting permission com.android.nfc.permission.NFCEE_ADMIN to package XXX (protectionLevel=2 flags=0x8be46)
解决方法:
应用程序的签名必须位于/system/etc/nfcee_access.xml中.参见例如http://code.google.com/p/seek-for-android/wiki/BuildingTheSystem示例如何创建它.