jasmine1

MTK Solution对NFC的容错处理简介

0
阅读(929)

[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.

来源:一牛网论坛