2016-09-26 1 views
-1

Ich versuche, den Wert "payload" aus einem externen Datensatz zu verwenden, den ich in ein NFC-Tag geschrieben habe. Ich weiß, dass der Datensatz erfolgreich auf das NFC-Tag geschrieben wurde. Ich habe Probleme, diesen "Nutzlast" -Wert in einer "if" -Anweisung zu verwenden. Mein Code folgt:Verwenden Sie die NFC-Variable "payload" in der Anweisung "if"

protected void onResume() { 
    super.onResume(); 

    // read nfc tag...IS THIS WHAT WILL "READ" THE PAYLOAD VALUE THAT HAS BEEN WRITTIEN? 

    if (getIntent().hasExtra(NfcAdapter.EXTRA_TAG)) { 

     NdefMessage ndefMessage =  this.getNdefMessageFromIntent(getIntent()); 
     if(ndefMessage.getRecords().length > 0){ 
      NdefRecord ndefRecord = ndefMessage.getRecords()[0]; 
      String payload = new String(ndefRecord.getPayload()); 
      Toast.makeText(this, payload, Toast.LENGTH_SHORT).show(); 
     } 
    } 
    enableForegroundDispatchSystem(); 
} 

Sobald ich „lesen“ die Nutzlast Wert bin in der Lage zu sein, möchte ich angeben, welche Code-Block zu laufen. Zum Beispiel:

protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 


    ///IF Payload Value = 1...Then run this code block: 

    if (intent.hasExtra(NfcAdapter.EXTRA_TAG)) 
    { 
     Toast.makeText(this, "NFC Scan", Toast.LENGTH_SHORT).show(); 
     Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 

     String url = "http://www.google.com"; 
     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setData(Uri.parse(url)); 
     startActivity(i); 
    } 

    ///IF Payload = 2, then run this code block: 

if (intent.hasExtra(NfcAdapter.EXTRA_TAG)) 
    { 
     Toast.makeText(this, "NFC Scan", Toast.LENGTH_SHORT).show(); 
     Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 

     String url = "http://www.yahoo.com"; 
     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setData(Uri.parse(url)); 
     startActivity(i); 
    } 

} 

Ich hoffe, das macht Sinn, ich ist nur eine einfache „if/else“ Anweisung basierend auf dem Wert der Nutzlast zu laufen versuchen, die auf den Tag geschrieben wurden. Danke für jede Hilfe !!

Antwort

0

Unter der Annahme, dass Sie mit dem String verweisen Variable payload in OnResume, dann können Sie schreiben:

if (payload.equals("1")) {...}