A: Überprüfen Sie folgende Punkte:
- Android SDK 21+ ist installiert (
adb --versionausführen) - Gradle ist aktualisiert (
./gradlew --versionsollte 8.2.0+ zeigen) - USB-Debugging ist auf dem Gerät aktiviert
- Das Gerät wird von
adb deviceserkannt
Falls weiterhin Probleme:
./gradlew clean
./gradlew buildA: Probieren Sie:
# Gradle-Cache leeren
rm -rf ~/.gradle/caches
# Neu builden
./gradlew clean buildIn Android Studio: File → Invalidate Caches → Restart
A: Nein, NFC funktioniert nicht im Emulator. Sie benötigen ein echtes Gerät mit NFC-Hardware.
A:
- NFC aktivieren - Einstellungen → Wireless & networks → NFC
- App starten - MainActivity muss laufen
- Tab wählen - "NFC Tags lesen" wählen
- Start antippen - Button drücken
- Tag halten - 3-5 Sekunden an der Rückseite halten
Falls immer noch nichts:
- Überprüfen Sie
adb logcat | grep NFC - Probieren Sie ein anderes NFC-Tag
A: Die App unterstützt derzeit:
- NDEF-Tags
- NFC-A, NFC-B, NFC-F, NFC-V
- IsoDep (teilweise)
Für vollständige ISO/IEC 7816-4 ist zusätzlicher Code erforderlich.
A: Nutzen Sie NfcManager.writeNdefToTag():
val message = NfcManager.createNdefMessage("Neue Daten")
val success = NfcManager.writeNdefToTag(tag, message)
if (success) {
println("Erfolgreich geschrieben!")
}A:
- NFC Type A - ISO14443-A (Samsung, Android)
- NFC Type B - ISO14443-B (bestimmte Systeme)
- NFC Type F - FeliCa (Japan, Public Transport)
- NFC Type V - ISO15693 (Long-Range)
A:
- App starten
- "NFC emulieren" Tab
- "Emulation starten" antippen
- Mit anderem NFC-Lesegerät nähern
- Daten werden emuliert
Wichtig: Nicht alle Geräte unterstützen HCE (Host Card Emulation).
A: Ja! Ändern Sie HostCardEmulationService.kt:
if (ins == 0xXX.toByte()) {
return handleMyCommand(commandApdu)
}A: Derzeit:
- 0xA4 - SELECT (Datei wählen)
- 0xB0 - READ BINARY (Daten lesen)
- 0xD0 - UPDATE BINARY (Daten schreiben)
Weitere können hinzugefügt werden.
A: Mit Android Studio Terminal:
adb logcat | grep -i nfcOder mit Filterung nach App:
adb logcat | grep nfccloneA: Ja, mit CustomFileTree:
val file = File(cacheDir, "nfc_logs.txt")
Timber.plant(Timber.DebugTree())
// + Custom File LoggingA: Siehe app/src/test/kotlin/. Beispiel:
@Test
fun testNfcTagCreation() {
val tag = NfcTagData("ID", "Type", listOf("NfcA"))
assertEquals("ID", tag.id)
}Führen Sie Tests aus:
./gradlew testA: Ja, es ist Open Source (MIT). Für F-Droid:
- Metadaten in
metadata/hinzufügen - Reproduzierbar bauen
- F-Droid Pull Request
A: Die App:
- Sendet keine Daten external
- Braucht keine Internet-Permission
- Speichert Daten lokal
Hinweis: Achten Sie auf NFC-Sicherheit! NFC kann "gehackt" werden.
A: NDEF bietet keine native Verschlüsselung. Sie können aber:
- Daten vor dem Schreiben verschlüsseln
- Custom APDU-Befehle mit Authentifizierung schreiben
A: NDEF-Dekodierung kann Zeit brauchen. Optimierungen:
- Coroutines verwenden
- UI nicht blocken
- NDEF auf dem Hintergrund-Thread dekodieren
A: Nein, der NFC-Adapter ermöglicht nur ein Tag zur Zeit.
Behebung:
adb uninstall com.example.nfcclone
./gradlew installDebugÜberprüfen Sie:
adb shell getprop | grep nfcFalls android.hardware.nfc.hce: false → Gerät unterstützt HCE nicht.
Logcat überprüfen:
adb logcat | grep "AndroidRuntime"Posten Sie den Fehler im GitHub Issue.
A: Ja! Öffnen Sie ein GitHub Issue mit:
- Beschreibung
- Use Case
- Beispiel-Code (optional)
Siehe CONTRIBUTING.md für Details.
Haben Sie noch Fragen?
- 📖 Lesen Sie
README.mdundTECHNICAL.md - 🚀 Siehe
QUICKSTART.mdfür schnelle Hilfe - 💬 Öffnen Sie ein GitHub Issue
- 👥 Diskutieren Sie in GitHub Discussions
Vielen Dank für die Nutzung von NFC Clone! 🎉