Skip to content

Instantly share code, notes, and snippets.

@Gnzlt
Created January 15, 2022 23:17
Show Gist options
  • Save Gnzlt/e14da859216b95b81ba2501e9948f68b to your computer and use it in GitHub Desktop.
Save Gnzlt/e14da859216b95b81ba2501e9948f68b to your computer and use it in GitHub Desktop.
Android NFC Tag Lifecycle Observer
package com.example
import android.app.Activity
import android.nfc.NfcAdapter
import android.nfc.Tag
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
class NfcTagLifecycleObserver(
private val activity: Activity,
private val callback: (Tag?) -> Unit
) : DefaultLifecycleObserver {
private val adapter = NfcAdapter.getDefaultAdapter(activity)
override fun onResume(owner: LifecycleOwner) {
adapter.enableReaderMode(activity, callback::invoke, NfcAdapter.FLAG_READER_NFC_A, null)
}
override fun onPause(owner: LifecycleOwner) {
adapter.disableReaderMode(activity)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment