Android 11如何使用HostApduService
时间: 2024-02-11 15:07:09 浏览: 29
在Android 11中,使用HostApduService来实现NFC卡模拟仍然是可行的。但是需要注意以下两个方面:
1. 在AndroidManifest.xml文件中,需要添加以下权限:
```xml
<uses-permission android:name="android.permission.NFC" />
```
2. 在HostApduService的子类中,需要重写onDeactivated()方法。在Android 11中,当操作系统检测到NFC连接断开时,会调用该方法来通知应用程序。应用程序需要在此方法中清理所有状态并准备下一次交互。
以下代码演示了如何创建一个简单的HostApduService:
```java
public class MyHostApduService extends HostApduService {
private static final byte[] SELECT_APDU = {(byte) 0x00, (byte) 0xA4, (byte) 0x04, (byte) 0x00, (byte) 0x07, (byte) 0xD2, (byte) 0x76, (byte) 0x00, (byte) 0x00, (byte) 0x85, (byte) 0x01, (byte) 0x00, (byte) 0x00};
private static final byte[] RESPONSE_APDU = {(byte) 0x90, (byte) 0x00};
@Override
public byte[] processCommandApdu(byte[] commandApdu, Bundle extras) {
if (Arrays.equals(SELECT_APDU, commandApdu)) {
return RESPONSE_APDU;
} else {
return null;
}
}
@Override
public void onDeactivated(int reason) {
//清理状态并准备下一次交互
}
}
```
在这个例子中,我们只是简单地处理了SELECT_APDU命令,并返回了RESPONSE_APDU。在实际应用中,您需要根据您的需求来实现更具体的功能。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)