NfcHelper

class NfcHelper(context: Context)(source)

Helper NFC centralisé.

Permission requise : android.permission.NFC

Enregistrement Koin :

single { NfcHelper(androidContext()) }

Utilisation :

// Vérifier la disponibilité
when (nfcHelper.getState()) {
NfcState.Enabled -> startReading()
NfcState.Disabled -> promptEnableNfc()
NfcState.Unavailable -> showUnsupported()
}

// Lire des tags (dans onResume / depuis un scope)
nfcHelper.tagFlow(activity, NfcReadConfig.Default)
.onEach { result -> when (result) {
is NfcTagResult.NdefText -> handleText(result.text)
is NfcTagResult.NdefUri -> handleUri(result.uri)
is NfcTagResult.RawTag -> handleRaw(result.tag)
is NfcTagResult.Error -> showError(result.message)
}}
.launchIn(lifecycleScope)

Constructors

Link copied to clipboard
constructor(context: Context)

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun openSettings(context: Context)

Ouvre les réglages NFC système.

Link copied to clipboard
fun tagFlow(activity: Activity, config: NfcReadConfig = NfcReadConfig.Default): Flow<NfcTagResult>

Flow émettant un NfcTagResult à chaque tag détecté. Active le reader mode sur l'activity à la souscription, le désactive à la fermeture du flow.

Link copied to clipboard
fun writeText(tag: Tag, text: String, languageCode: String = "en"): Boolean

Écrit un message texte NDEF sur le tag. Retourne true si l'écriture a réussi, false si le tag n'est pas NDEF, n'est pas accessible en écriture, ou si une erreur survient.

Link copied to clipboard
fun writeUri(tag: Tag, uri: String): Boolean

Écrit une URI NDEF sur le tag. Retourne true si l'écriture a réussi, false si le tag n'est pas NDEF, n'est pas accessible en écriture, ou si une erreur survient.