MTK Solution对NFC的容错处理简介
[DESCRIPTION]
当前mtk Solution对nfc的容错处理如何?
典型地:
1. Logical channels是否存在回收机制,可以定期释放解决异常APK长期占用的问题
2. 以下case会命令Modem关闭Logical channel吗?
当调用smartcardservice提供的open mobile api接口的APK,在打开若干逻辑通道后
出现Crash挂掉
被调用的smartcardservice本身在运行过程中出现异常,进程被终止?
[SOLUTION]
1. Logical channels是否存在回收机制,可以定期释放解决异常APK长期占用的问题
答:MTK的AP API层以及modem底层,没有定期回收logical channel的机制。
1> Spec没有规定,要主动来关长时间占用的logical channel。
2> ME目前不知道这个channel open多久了,更不知道这条channel有多久没有用了
3> ME如果贸然关掉channel,而AP也没办法知道,可能会导致更多问题。
4> 当App使用不当, 导致Channel被用完, 下次再openLogicalChannel()时, 我们是按照Spec的描述 return Null 给 App.
这个作法是有依循Spec的规定的.
2. 以下case会命令Modem关闭Logical channel吗?
2.1 当调用smartcardservice提供的open mobile api接口的APK,在打开若干逻辑通
道后出现Crash挂掉
答:会命令Modem关闭Logical channel。
因为上层App是通过bindService的方式叫起smartcardservcie, 所以上层APP
crash掉后,AMS会call到smartcardservice的onUnbind(), 然后如果当前没有其他的
app在使用smartcardservice了,AMS就会call smartcardservice的onDestory, 在
onDestory中,会close掉所有smartcardservice打开的logical channel.
2.2 被调用的smartcardservice本身在运行过程中出现异常,进程被终止
答:不会命令Modem关闭Logical channel。
因为smartcardservice crash后, smartcardservice 会立即被杀掉,onDestory是
call不到的,所以没有时机点去close logical channel.
来源:一牛网论坛