O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

GDD2011 OpenCall ADK "NFC for Everybody" design document

2.189 visualizações

Publicada em

Publicada em: Tecnologia, Negócios
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

GDD2011 OpenCall ADK "NFC for Everybody" design document

  1. 1. “Nfc for Everybody” Design Document NFC( FeliCa ) / NFC Nexus One XOOM NFC Components USB Serial FeliCa / Accessory ADK Board RC-S620/S ( ) IDm( ) NDEF Message NDEF Intent NFC Suica Readertaglet NFC↑
  2. 2. Google I/O 2011 ADK FeliCa Push https://github.com/zaki50/FeliCaPushWithAndroidAccessory (NDEF_DISCOVERED) Flow (Android application) in Accessory 1. private List<ActivityInfo> findForNdef(String mimetype) { final Intent i = new Intent(NfcAdapter.ACTION_NDEF_DISCOVERED); 2. i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setType(mimetype); 3. IDm( final List<ResolveInfo> resolvedActivities; resolvedActivities = getPackageManager().queryIntentActivities(i, NDEF Messages) PackageManager.GET_META_DATA); final List<ActivityInfo> result = new ArrayList<ActivityInfo>(); 4. Android for (ResolveInfo resAct : resolvedActivities) { result.add(resAct.activityInfo); } 5. in Device return result; } 6. Intent 7.Intent startActivity (Android application) private Intent createIntentForTag(byte[] idm, NdefMessage[] msgs) throws IllegalAccessException, InvocationTargetException { IDm build materials // sTagFactory is Method instance of Tag#createMockTag(...) final Tag tag = (Tag) sTagFactory.invoke(null, new Object[] { (a part of Arduino firmware) idm, //RC-S620/S static RCS620S rcs620s; // new int[] { 4Arduino RC-S620/S int waitCardReleased = 0; /* TagTechnology.NFC_F */}, // new Bundle[] { (OpenSource) int do_polling() } new Bundle() { });RC-S620/S rcs620s.timeout = COMMAND_TIMEOUT; final Intent i = new Intent(NfcAdapter.ACTION_TECH_DISCOVERED);   ret = rcs620s.polling(); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.putExtra(NfcAdapter.EXTRA_ID, idm); if (!ret) {return 0;} i.putExtra(NfcAdapter.EXTRA_TAG, tag); // idm can be read from rc620s.idm i.putExtra(NfcAdapter.EXTRA_NDEF_MESSAGES, msgs); return 1; return i; } }

×