次のコードを使用して、Android の NFC タグの一意の識別子を識別しようとしています。
@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() がバイト配列を返すことはわかっているので、それを解析して文字列に変換する必要があります。しかし、少なくとも、このコードはアプリをクラッシュさせるのではなく、何らかの値を返すことを期待しています。それを修正する方法はありますか?
編集: 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)