2016-09-26 6 views
-1

NFCタグに書き込んだ外部レコードの "payload"値を使用しようとしています。私はレコードがNFCタグに正常に書き込まれたことを知っています。私は "if"ステートメントの "ペイロード"値を使用して問題を抱えています。私のコードは次のようになります:"if"ステートメントでNFC "payload"変数を使用する

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(); 
} 

私がペイロード値を "読み取る"ことができたら、実行するコードブロックを指定します。例えば:私は、これは理にかなって願っています

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); 
    } 

} 

、私はタグに書き込まれたペイロードの値に基づいて、単純な「IF/ELSE」ステートメントを実行しようとしています。助けてくれてありがとう!

答えて

0

あなたは​​OnResume内の変数の文字列を参照すると仮定すると、あなたは書くことができます:

if (payload.equals("1")) {...} 
関連する問題