마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

조건문에서 오류가 나요 꼭 도와주세요.

0 추천

안녕하세요 NFC 관련 앱을 만들고 있는 학생입니다.

 

다름이 아니라 마이비 카드 정보를 읽은 후 그 정보를 이용해 그 정보가  일치하면 포인트를 누적할려고 하는데요

IF문을 넣으면 오류가 나요

 

도와주세요!!!!!!!!!!!!!!! 

 

 

public class PointActivity extends Activity {
 
 
 private TextView readnfc;
 private NfcAdapter nfcAdapter;
 private PendingIntent pendingIntent;
 private final long FINSH_INTERVAL_TIME = 2000;
 private long backPressedTime = 0;
 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.point);
        readnfc = (TextView)findViewById(R.id.readnfc);
       
        nfcAdapter = NfcAdapter.getDefaultAdapter(this);
        Intent intent = new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

    }
   
    //뒤로가기 버튼 터치시 종료되는 함수
    public void onBackPressed(){
     long tempTime = System.currentTimeMillis();
     long intervalTime = tempTime - backPressedTime;
     
     
     if(0<=intervalTime && FINSH_INTERVAL_TIME >= intervalTime){
      finish();
      System.exit(0);
      android.os.Process.killProcess(android.os.Process.myPid());
      
      ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
   am.restartPackage(getPackageName());
     }
     else {
      backPressedTime =tempTime;
      Toast.makeText(getApplicationContext(),"뒤로 버튼을 한번 더 누르시면 종료됩니다.",Toast.LENGTH_SHORT).show();   
          }
    }
   
    //NFC 관련 함수
    protected void onPause() {
  if (nfcAdapter != null) {
   nfcAdapter.disableForegroundDispatch(this);
  }
  super.onPause();
 }

 @Override
 protected void onResume() {
  super.onResume();
  if (nfcAdapter != null) {
   nfcAdapter.enableForegroundDispatch(this, pendingIntent, null, null);
  }
 }

 
 
 @Override
 protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  
  Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
  if (tag != null) {
   byte[] tagId = tag.getId();
   readnfc.setText("TagID: " + toHexString(tagId));
  }
    if(tagId == E489FFE4){

    HEX값을 넣으니까 빨간색으로 오류가 나네요

   제가 하고 싶은거는 Tagid가 위의 정보와 일치하면 핸들러 기능을 이용해 확인 버튼을 누르고

 

  다음 엑티비티로 인텐트 기능을 넣으려고 하는데요 잘 안되네요

 

 도와주세요

 

}
 }
    //E489FFE4 마이비 카드
 
 

 
 public static final String CHARS = "0123456789ABCDEF";
 public static String toHexString(byte[] data) {
  StringBuilder sb = new StringBuilder();
  for (int i = 0; i < data.length; ++i) {
   sb.append(CHARS.charAt((data[i] >> 4) & 0x0F))
    .append(CHARS.charAt(data[i] & 0x0F));
  }
  return sb.toString();
 }

김희구 (440 포인트) 님이 2014년 7월 23일 질문

2개의 답변

+1 추천
 
채택된 답변
가져온 값은 String값일거고...

이걸 비교하시려면.. tagid.equals("E489FFE4")

라고 조건을 해야겠네요....
개발자초심 (21,220 포인트) 님이 2014년 7월 24일 답변
김희구님이 2014년 7월 30일 채택됨
+1 추천

16진수면 0x를 붙여줘야됩니다.

0XE489FFE4

 

String형이면 equals("E489FFE4") 로 비교해야되고요

익명사용자 님이 2014년 7월 23일 답변
...