- Forum-Beiträge: 4
10.06.2015, 10:39:02 via Website
10.06.2015 10:39:02 via Website
Für eine App möchte ich ein Tag einmalig beschreiben und es anschließend mit einem dauerhaften Schreibschutz versehen. Dafür gedacht ist wohl die Methode makeReadOnly(), die bei mir aber leider jedes Mal eine IOExeption wirft. Die Message der Exception ist meistens null aber ab und zu (wie unten im Beispiel) auch "Tag is not ndef". Bislang habe ich folgendes unternommen:
- Geprüft, ob der Tag beschreibbar ist
- Den Tag tatsächlich beschrieben
- Mit canMakeReadOnly() geprüft, ob ich das Tag überhaupt mit einem Schreibschutz versehen kann
- Die Methode in einem eigenen Thread ausgeführt
- Ein Tag mit der App Tag-Writer mit einem Schreibschutz versehen, um auszuschließen, dass es an den Tags liegt
- Herausgefunden, dass IOException auch die Default-Exception der Methode ist, d. h. die Ursache könnte auch woanders liegen
Der entsprechende Code sieht so aus:
try {
ndefTag.connect();
if(ndefTag.canMakeReadOnly()) {
Log.d("Schuetzen", "makeReadOnly is possible");
}
else {
Log.d("Schuetzen", "makeReadOnly is not possible");
}
if(ndefTag.isWritable())
{
Log.d("Schuetzen", "Tag isWritable");
}
ndefTag.makeReadOnly();
}
catch (IOException e) {
e.printStackTrace();
Log.d("myThread", e.toString());
}
finally {
// Close connection:
try {
ndefTag.close();
Log.d("myThread", "Tag closed");
}
catch (Exception e) {
e.printStackTrace();
}
}
Und das dazugehörige Logcat so:
06-10 10:34:50.117 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter D/Schuetzen﹕ makeReadOnly is possible
06-10 10:34:50.117 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter D/Schuetzen﹕ Tag isWritable
06-10 10:34:50.851 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ java.io.IOException: Tag is not ndef
06-10 10:34:50.859 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ at android.nfc.tech.Ndef.makeReadOnly(Ndef.java:403)
06-10 10:34:50.859 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ at net.bits_bremen.bruenjes.gleisteinwriter.myThread.doInBackground(myThread.java:34)
06-10 10:34:50.867 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-10 10:34:50.890 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-10 10:34:50.890 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
06-10 10:34:50.898 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-10 10:34:50.914 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-10 10:34:50.921 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter W/System.err﹕ at java.lang.Thread.run(Thread.java:856)
06-10 10:34:50.921 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter D/myThread﹕ java.io.IOException: Tag is not ndef
06-10 10:34:50.968 2671-4160/net.bits_bremen.bruenjes.gleisteinwriter D/myThread﹕ Tag closed
Ich bin dankbar für jeden Lösungsvorschlag oder auch für Alternativen, um das Tag zu versiegeln.
— geändert am 10.06.2015, 10:41:43
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.