diff --git a/android/src/main/kotlin/io/flutter/plugins/nfcmanager/NfcManagerPlugin.kt b/android/src/main/kotlin/io/flutter/plugins/nfcmanager/NfcManagerPlugin.kt index fea8aed..65da2d7 100644 --- a/android/src/main/kotlin/io/flutter/plugins/nfcmanager/NfcManagerPlugin.kt +++ b/android/src/main/kotlin/io/flutter/plugins/nfcmanager/NfcManagerPlugin.kt @@ -63,6 +63,7 @@ class NfcManagerPlugin: FlutterPlugin, MethodCallHandler, ActivityAware { override fun onMethodCall(call: MethodCall, result: Result) { when (call.method) { "Nfc#isAvailable" -> handleNfcIsAvailable(call, result) + "Nfc#isSupported" -> handleNfcIsSupported(call, result) "Nfc#startSession" -> handleNfcStartSession(call, result) "Nfc#stopSession" -> handleNfcStopSession(call, result) "Nfc#disposeTag" -> handleNfcDisposeTag(call, result) @@ -96,6 +97,10 @@ class NfcManagerPlugin: FlutterPlugin, MethodCallHandler, ActivityAware { result.success(adapter?.isEnabled == true) } + private fun handleNfcIsSupported(call: MethodCall, result: Result) { + result.success(this.adapter != null) + } + private fun handleNfcStartSession(call: MethodCall, result: Result) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { result.error("unavailable", "Requires API level 19.", null) diff --git a/lib/src/nfc_manager/nfc_manager.dart b/lib/src/nfc_manager/nfc_manager.dart index 819ec20..2d9707d 100644 --- a/lib/src/nfc_manager/nfc_manager.dart +++ b/lib/src/nfc_manager/nfc_manager.dart @@ -30,6 +30,10 @@ class NfcManager { return channel.invokeMethod('Nfc#isAvailable').then((value) => value!); } + /// Checks whether the NFC features are supported in the hardware level + Future isSupported() async { + return channel.invokeMethod('Nfc#isSupported').then((value) => value!); + } /// Start the session and register callbacks for tag discovery. /// /// This uses the NFCTagReaderSession (on iOS) or NfcAdapter#enableReaderMode (on Android).