Deactivate NVC connection to NFC Tag type 4 before closing to avoid app crash (Known Issue)
hamishwillee
(Talk | contribs) m (moved NFC 3rd party application crashes with Tag type 4 to Deactivate NVC connection to NFC Tag type 4 before closing to avoid app crash (Known Issue): Title is more accurate) |
hamishwillee
(Talk | contribs) m (Text replace - "<code cpp>" to "<code cpp-qt>") |
||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Near Field Communication (NFC)]][[Category:Qt Mobility]][[Category:Code Snippet]][[Category:Symbian]][[Category:Known Issue]] | [[Category:Near Field Communication (NFC)]][[Category:Qt Mobility]][[Category:Code Snippet]][[Category:Symbian]][[Category:Known Issue]] | ||
| − | {{Abstract| This article | + | {{Abstract|This article provides a workaround to avoid application crashes when closing the connection to an NFC Tag Type 4 on Nokia Belle.}} |
{{ArticleMetaData <!-- v1.1 --> | {{ArticleMetaData <!-- v1.1 --> | ||
|sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] --> | |sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] --> | ||
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | ||
| − | |devices= Nokia C7 | + | |devices= Nokia C7 (firmware FW 022.013 and FW022.014) |
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Qt SDK 1.1.4]) --> | |sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Qt SDK 1.1.4]) --> | ||
|platform= <!-- Compatible platforms - e.g. Symbian^1 and later, Qt 4.6 and later --> | |platform= <!-- Compatible platforms - e.g. Symbian^1 and later, Qt 4.6 and later --> | ||
| Line 27: | Line 27: | ||
== Introduction == | == Introduction == | ||
| − | When | + | When an NFC tag is lost/separated from the device a handler should be called to close the connection. Due to a bug in the NFC implementation on Nokia Belle, we need to first deactivate the connection before closing it, or the application will panic. |
| − | + | ||
== How to produce the bug == | == How to produce the bug == | ||
| − | + | # Implement your code to handle the tag lost event as below. Note that this is the ''correct'' way to handle the event: | |
| − | + | #: <code cpp-qt> | |
| − | <code cpp> | + | |
void CNfcHandler::TagLost() | void CNfcHandler::TagLost() | ||
{ | { | ||
| − | iTag->CloseConnection(*iIso14443Connection); | + | iTag->CloseConnection(*iIso14443Connection); |
| − | delete iIso14443Connection; | + | delete iIso14443Connection; |
| − | iIso14443Connection = 0; | + | iIso14443Connection = 0; |
} | } | ||
</code> | </code> | ||
| + | # Run the application | ||
| + | # Touch an NFC tag type 4 to the device (for example, a Nokia C7) and then remove it | ||
| − | + | The NFC app is closed due to a panic (Symbian unexpected exception). | |
| − | + | == Workaround == | |
| − | + | The following code can be used to workaround this crash on Nokia Belle: | |
| − | + | <code cpp-qt> | |
| − | + | ||
| − | + | ||
| − | <code cpp> | + | |
void CNfcHandler::TagLost() | void CNfcHandler::TagLost() | ||
{ | { | ||
| − | if(iIso14443Connection->IsActivated()) | + | if(iIso14443Connection->IsActivated()) { |
| − | { | + | iIso14443Connection->Deactivate(); |
| − | iIso14443Connection->Deactivate(); | + | } |
| − | } | + | iTag->CloseConnection(*iIso14443Connection); |
| − | iTag->CloseConnection(*iIso14443Connection); | + | delete iIso14443Connection; |
| − | delete iIso14443Connection; | + | iIso14443Connection = 0; |
| − | iIso14443Connection = 0; | + | |
} | } | ||
</code> | </code> | ||
== Device SW used to test== | == Device SW used to test== | ||
| − | + | * C7 with FW 022.013 and FW022.014 | |
| + | |||
| + | Note, this is tracked internally as "Failure 880652: [mcl]NFC 3rd party application crashes" | ||
Latest revision as of 04:23, 11 October 2012
This article provides a workaround to avoid application crashes when closing the connection to an NFC Tag Type 4 on Nokia Belle.
Article Metadata
Tested with
Devices(s): Nokia C7 (firmware FW 022.013 and FW022.014)
Article
Created: mahbub_s60
(06 Feb 2012)
Last edited: hamishwillee
(11 Oct 2012)
Contents |
Introduction
When an NFC tag is lost/separated from the device a handler should be called to close the connection. Due to a bug in the NFC implementation on Nokia Belle, we need to first deactivate the connection before closing it, or the application will panic.
How to produce the bug
- Implement your code to handle the tag lost event as below. Note that this is the correct way to handle the event:
-
void CNfcHandler::TagLost()
{
iTag->CloseConnection(*iIso14443Connection);
delete iIso14443Connection;
iIso14443Connection = 0;
}
-
- Run the application
- Touch an NFC tag type 4 to the device (for example, a Nokia C7) and then remove it
The NFC app is closed due to a panic (Symbian unexpected exception).
Workaround
The following code can be used to workaround this crash on Nokia Belle:
void CNfcHandler::TagLost()
{
if(iIso14443Connection->IsActivated()) {
iIso14443Connection->Deactivate();
}
iTag->CloseConnection(*iIso14443Connection);
delete iIso14443Connection;
iIso14443Connection = 0;
}
Device SW used to test
- C7 with FW 022.013 and FW022.014
Note, this is tracked internally as "Failure 880652: [mcl]NFC 3rd party application crashes"

