KORAI HOZZÁFÉRÉS: A PlüssBarátok még fejlesztés alatt áll.

PlüssBarátok

← Fejlesztői dokumentáció

NFC

Minden plüssben NDEF formátumú NFC címke van, ami egy URL-t tartalmaz. Ez az URL a plüss digitális profiljára mutat.

Android NFC Documentation

1. Engedélyek – AndroidManifest.xml

<uses-permission android:name="android.permission.NFC" />

<!-- Ha az appodhoz kötelező az NFC -->
<uses-feature android:name="android.hardware.nfc"
    android:required="true" />

2. NFC olvasó inicializálása (Kotlin)

val nfcAdapter = NfcAdapter.getDefaultAdapter(this)
if (nfcAdapter == null || !nfcAdapter.isEnabled) {
    // Az eszköz nem támogatja az NFC-t, vagy ki van kapcsolva
}

3. Foreground dispatch beállítása

override fun onResume() {
    super.onResume()
    val intent = Intent(this, javaClass).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
    val pendingIntent = PendingIntent.getActivity(
        this, 0, intent, PendingIntent.FLAG_MUTABLE
    )
    nfcAdapter.enableForegroundDispatch(this, pendingIntent, null, null)
}

override fun onPause() {
    super.onPause()
    nfcAdapter.disableForegroundDispatch(this)
}

4. Tag beolvasása

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    if (intent.action == NfcAdapter.ACTION_NDEF_DISCOVERED ||
        intent.action == NfcAdapter.ACTION_TAG_DISCOVERED) {

        val rawMessages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)
        val messages = rawMessages?.map { it as NdefMessage }

        messages?.forEach { message ->
            message.records.forEach { record ->
                val payload = String(record.payload, Charsets.UTF_8)
                // A payload tartalmazza a tag adatát
            }
        }
    }
}