NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); NfcAdapter adapter = manager.getDefaultAdapter(); if (adapter != null && adapter.isEnabled()) { // adapter exists and is enabled. }
void enablePush() { nfc.setNdefPushMessageCallback(this, this); } }
void cleanUpWritingToTag() { nfc.disableForegroundDispatch(this); inWriteMode=false; }
@Test public void setNdefPushMessage_setsNonNullMessage() throws Exception { final Activity activity = Robolectric.setupActivity(Activity.class); final NfcAdapter adapter = NfcAdapter.getDefaultAdapter(activity); final NdefMessage message = new NdefMessage(new NdefRecord[] {new NdefRecord(NdefRecord.TNF_EMPTY, null, null, null)}); adapter.setNdefPushMessage(message, activity); assertThat(shadowOf(adapter).getNdefPushMessage()).isSameAs(message); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); nfc=NfcAdapter.getDefaultAdapter(this); }
@Override public NdefMessage createNdefMessage(NfcEvent arg0) { NdefRecord uriRecord= new NdefRecord(NdefRecord.TNF_MIME_MEDIA, MIME_TYPE.getBytes(Charset.forName("US-ASCII")), new byte[0], beamFragment.getUrl() .getBytes(Charset.forName("US-ASCII"))); NdefMessage msg= new NdefMessage( new NdefRecord[] { uriRecord, NdefRecord.createApplicationRecord("com.commonsware.android.webbeam") }); return(msg); } }
void readFromTag(Intent i) { Parcelable[] msgs= (Parcelable[])i.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); if (msgs.length > 0) { NdefMessage msg=(NdefMessage)msgs[0]; if (msg.getRecords().length > 0) { NdefRecord rec=msg.getRecords()[0]; secretMessage.setText(new String(rec.getPayload(), US_ASCII)); } } }
@Override protected void onNewIntent(Intent intent) { if (inWriteMode && NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { Tag tag=intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); byte[] url=buildUrlBytes(getIntent().getStringExtra(Intent.EXTRA_TEXT)); NdefRecord record=new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte[] {}, url); NdefMessage msg=new NdefMessage(new NdefRecord[] {record}); new WriteTask(this, msg, tag).execute(); } }
@Override public NdefMessage createNdefMessage(NfcEvent event) { return(new NdefMessage( new NdefRecord[] { buildNdefRecord(), NdefRecord.createApplicationRecord("com.commonsware.android.jimmyb") })); }
String action = getIntent().getAction(); if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) { Parcelable[] messages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); for (int i = 0; i < messages.length; i++) { NdefMessage message = (NdefMessage)messages[i]; NdefRecord[] records = message.getRecords(); for (int j = 0; j < records.length; j++) { NdefRecord record = records[j]; // TODO Process the individual records. } } }
void writeToTag(Intent i) { Tag tag=i.getParcelableExtra(NfcAdapter.EXTRA_TAG); NdefMessage msg= new NdefMessage(new NdefRecord[] { buildNdefRecord() }); new WriteTagTask(this, msg, tag).execute(); }
@TargetApi(16) @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode==0 && resultCode==RESULT_OK) { nfc.setBeamPushUris(new Uri[] {data.getData()}, this); } }
@Test public void getNfcAdapter_returnsNonNull() { NfcAdapter adapter = NfcAdapter.getDefaultAdapter(context); assertThat(adapter).isNotNull(); }
private void handleIntent(Intent i) { if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(i.getAction())) { Parcelable[] rawMsgs= i.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); NdefMessage msg=(NdefMessage)rawMsgs[0]; String url=new String(msg.getRecords()[0].getPayload()); beamFragment.loadUrl(url); } }
@Override public void onPause() { if (isFinishing()) { nfc.disableForegroundDispatch(this); inWriteMode=false; } super.onPause(); }
@Override public void onNdefPushComplete(NfcEvent event) { nfc.setNdefPushMessageCallback(null, this); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode==0 && resultCode==RESULT_OK) { adapter.setBeamPushUris(new Uri[] {data.getData()}, this); Button btn=new Button(this); btn.setText(R.string.over); btn.setOnClickListener(this); setContentView(btn); } }
@Test public void getNfcAdapter_hardwareExists_returnsNonNull() { ShadowNfcAdapter.setNfcHardwareExists(true); NfcAdapter adapter = NfcAdapter.getDefaultAdapter(context); assertThat(adapter).isNotNull(); }
void disablePush() { adapter.setNdefPushMessageCallback(null, this); }
void enablePush() { adapter.setNdefPushMessageCallback(this, this); }