From aaf2df8153843e4f75312f2ea4703be06ecd71fe Mon Sep 17 00:00:00 2001 From: Arron Wang Date: Mon, 12 May 2014 16:57:15 +0800 Subject: [PATCH] Use the right way to trigger tag discovered callback Due to we need to pass the tag info to tag discovered callback function, we need to read the tag first, to avoid invoke tag read completed callback, we need to use a flag for tag discovered Change-Id: I4786eb76c3cef1d681079bb3998b2d8654d15819 --- client/net_nfc_neard.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/client/net_nfc_neard.c b/client/net_nfc_neard.c index cfad3c6..25df3dc 100644 --- a/client/net_nfc_neard.c +++ b/client/net_nfc_neard.c @@ -62,6 +62,7 @@ static data_s *rawNDEF; static net_nfc_target_info_s *target_info; static net_nfc_target_handle_s *target_handle; static net_nfc_connection_handover_info_s *handover_info; +static bool read_flag; static net_nfc_error_e _convert_error_code(errorCode_t error_code) { @@ -313,6 +314,8 @@ static void _tag_found_cb(const char *tagName, void *user_data) NFC_DBG("Failed to get rawNDEF"); return; } + + read_flag = true; } static void _tag_lost_cb(const char *tagName, void *user_data) @@ -441,8 +444,12 @@ static void _read_completed_cb(GVariant *ret, void *user_data) result = net_nfc_util_convert_rawdata_to_ndef_message( rawNDEF, ndef); exit: - if (client_cb.tag_discovered_cb != NULL) - client_cb.tag_discovered_cb(target_info, client_cb.tag_discovered_ud); + if (client_cb.tag_discovered_cb != NULL && read_flag == true) { + client_cb.tag_discovered_cb(target_info, + client_cb.tag_discovered_ud); + read_flag = false; + return; + } if (client_cb.ndef_read_cb != NULL) { client_cb.ndef_read_cb(result, ndef, client_cb.ndef_read_ud); -- 2.7.4