2016-04-22 3 views
0

Nachdem ich NFC-Funktionalität zu meiner App hinzugefügt habe, bin ich auf einen seltsamen Fehler gestoßen. Ich habe viele Anleitungen und Tutorials gefolgt, und sie haben diese Linie,Tag-Tag = intent.getParcelableArrayExtra (NfcAdapter.EXTRA_TAG);

Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG); 

Welche Arbeit does'nt weil Tag einen Tag braucht, aber es ist ein Parcel Objekt empfängt. Ich bin nicht sicher, ob ich etwas vermisse oder warum andere zu arbeiten scheinen, aber nicht meiner.

Voll Methode

private void handleIntent(Intent intent) 
{ 
    String action = intent.getAction(); 
    if(NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) 
    { 
     String type = intent.getType(); 
     if (mime_Text_plain.equals(type)) 
     { 
      Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG); 
      new NdefReader().execute(tag); 
     } 
     else 
     { 
      Log.d(TAG, "Wrong MIME Type!"); 
     } 
    }else if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) 
    { 
     Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG); 
     String[] nfclist = tag.getTechList(); 
     String searchedNFC = Ndef.class.getName(); 

     for (String nfc: nfclist) 
     { 
      if (searchedNFC.equals(nfc)) 
      { 
       new NdefReader().execute(tag); 
       break; 
      } 
     } 
    } 
} 

Antwort

0

Sie Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); verwenden sollten, statt Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);

Der erste, der eine Tag-Objekt zurückgibt und die zweite gibt ein Array.

+0

Alter vielen Dank. Das muss ich jedes Mal übersehen haben. – MrAnderson1992

+0

Dafür sind wir da. Vergiss nicht, die Antwort zu geben, damit sie anderen helfen kann –