Я пытаюсь определить уникальный идентификатор NFC тег на андроид, используя следующий код:Определение NFC теги ID
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Tag myTag = (Tag) getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);
String nFCID = myTag.getId().toString();
Toast.makeText(getApplicationContext(), "NFC id is: "+ nFCID, Toast.LENGTH_SHORT).show();
}
К сожалению, когда я развернуть приложение на реальном устройстве и сканирования метки NFC, мой приложение выйдет из строя, заявив: «К сожалению, xyz должен остановиться ...». Я знаю, что getID() вернет массив байтов, и я должен проанализировать его на String. Но, по крайней мере, я ожидаю, что этот код вернет некоторые значения, а не сбой приложения. Есть идеи, как это исправить?
Отредактированные: LogCat выходы:
W/dalvikvm(25548): threadid=1: thread exiting with uncaught exception group=0x41b652a0)
E/AndroidRuntime(25548): FATAL EXCEPTION: main
E/AndroidRuntime(25548): java.lang.RuntimeException:
Unable to start activity ComponentInfo{com.xyz.nfcid/com.xyz.nfcid.MainActivity}:
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
Вы уверены, что myTag не имеет значения? – dymmeh
Что произойдет, если вы сделаете это на onResume()? – ThomasRS