안녕하세요. 기존의 소스를 받은 어플이 있습니다.
어플을 실행하고 스탠바이 상태에서 NFC 태그를 태깅하면 아래의 코드가 실행되는데
postReading(rfid); 메소드를 호출해서 미리 정해놓은 URL을 브라우저를 호출하여 띄워주는 어플입니다.
근데 로그를 찍어보니 오로지 어플 실행중에 NFC를 최초에 태깅했을 때 한번만 저 로직을 타더라구요.
즉 두번째 세번째 계속 태깅하면 어플의 저 메소드가 실행되지 않고 NFC 태그에 쓰여진 URI만 자체 실행됩니다.
어떻게 하면 NFC를 태깅할 때마다 저 로직을 수행하게 할 수 있을런지요?
onNewIntent는 원래 오직 한번만 실행되는 것인가요?
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
String action = intent.getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) {
if (DeviceStatus.READY_TAG == mDeviceStatus) {
// get the tag from the Intent
Tag mytag = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
String rfid = "";
try {
rfid = byteArrayToHexadecimal(mytag.getId());
mDeviceStatus = DeviceStatus.SEND_DATA;
} finally {
if (mDeviceStatus == DeviceStatus.SEND_DATA) {
postReading(rfid);
}
}
}
} else if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)) {
if (DeviceStatus.READY_TAG == mDeviceStatus) {
// get the tag from the Intent
Tag mytag = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
String rfid = "";
try {
rfid = byteArrayToHexadecimal(mytag.getId());
mDeviceStatus = DeviceStatus.SEND_DATA;
} finally {
if (mDeviceStatus == DeviceStatus.SEND_DATA) {
postReading(rfid);
}
}
}
}
}
태그를 태깅할 때마다 소스의 로직을 타게 하고 싶습니다. 어느 부분을 수정해야할지 알려주시면 정말 고맙겠습니다.