List of usage examples for android.nfc.tech Ndef get
public static Ndef get(Tag tag)
From source file:Main.java
public static boolean writeNFCTag(NdefMessage message, Tag tag) { int size = message.toByteArray().length; try {/* w w w.java2 s . c om*/ Ndef ndef = Ndef.get(tag); if (ndef != null) { ndef.connect(); if (!ndef.isWritable()) { return false; } if (ndef.getMaxSize() < size) { return false; } ndef.writeNdefMessage(message); return true; } else { NdefFormatable format = NdefFormatable.get(tag); if (format != null) { try { format.connect(); format.format(message); return true; } catch (IOException e) { return false; } } else { return false; } } } catch (Exception e) { return false; } }
From source file:Main.java
/** * Write the current IP address of the Android device to an NFC Tag. Must be connected to wifi network. * * @param tag NFC Tag to write message to * @param wifi WifiManager which can be used to retrieve IP address * @throws IOException//from ww w . j a va 2 s . c om * @throws FormatException * @throws IllegalStateException when Android device is not connected to Wifi network */ public static void writeIpAddress(Tag tag, WifiManager wifi) throws IOException, FormatException, IllegalStateException { String ipAddress = getIpAddr(wifi); if (ipAddress.equals("0.0.0.0")) { throw new IllegalStateException("Not connected to Wifi"); } NdefRecord[] records = { createRecord(ipAddress) }; NdefMessage message = new NdefMessage(records); Ndef ndef = Ndef.get(tag); ndef.connect(); ndef.writeNdefMessage(message); ndef.close(); }
From source file:com.macleod2486.androidswissknife.components.NFCCallback.java
@Override public void onTagDiscovered(Tag tag) { EditText tagResult = activity.findViewById(R.id.textEntry); try {/* ww w. j a va2s .c o m*/ Ndef ndef = Ndef.get(tag); if (ndef != null) { NdefMessage ndefMesg = ndef.getCachedNdefMessage(); if (ndefMesg != null) { nfcData = "Message: " + ndefMesg.toString(); Log.i("NFCCallback", nfcData); } } else { nfcData = "Attempting to format"; Log.i("NFCCallback", "Attempting to format"); activity.runOnUiThread(new Runnable() { @Override public void run() { tagResult.setText(""); tagResult.append("Attempting to format"); } }); NdefFormatable format = NdefFormatable.get(tag); if (format != null) { format.connect(); if (format.isConnected()) { try { format.format(null); nfcData = "Formatted"; Log.i("NFCCallback", "Formatted"); } catch (Exception e) { nfcData = "Error occurred in formatting"; e.printStackTrace(); } format.close(); } } else { Log.i("NFCCallback", "Tag not found"); nfcData = "Tag not found or formatted"; } } if (tagResult != null) { activity.runOnUiThread(new Runnable() { @Override public void run() { tagResult.setText(""); Log.i("NFCCallback", "Cleared"); tagResult.append(nfcData); } }); } } catch (Exception e) { activity.runOnUiThread(new Runnable() { @Override public void run() { tagResult.setText(""); tagResult.append("Error reading tag"); } }); e.printStackTrace(); } }
From source file:de.berlin.magun.nfcmime.core.RfidDAO.java
/** * @param tag Tag * @return true, if the Tag is NDEF formatted */ public boolean isNdef(Tag tag) { return (Ndef.get(tag) != null); }
From source file:com.hybris.mobile.activity.NFCWriteActivity.java
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); // default failed setResult(RESULT_CANCELED);//from w ww . j a v a 2s . co m if (NFCUtil.supportsNdef(tag)) { Ndef ndef = Ndef.get(tag); try { int maxSize = ndef.getMaxSize(); int messageSize = this.msg.toByteArray().length; if (ndef.isWritable() && maxSize > messageSize) { ndef.connect(); ndef.writeNdefMessage(this.msg); if (getResources().getBoolean(R.bool.nfc_read_only)) { if (ndef.canMakeReadOnly()) { boolean success = ndef.makeReadOnly(); if (!success) Toast.makeText(this, "Unable to make tag readonly!", Toast.LENGTH_LONG).show(); else Toast.makeText(this, "Tag is now readonly!", Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "This tag cannot be made readonly!", Toast.LENGTH_LONG).show(); } } setResult(RESULT_OK); showDialogFragmentWithMessage(R.string.nfc_tag_written); } else { showDialogFragmentWithMessage(R.string.error_nfc_readonly_size); } } catch (IOException e) { LoggingUtils.e(LOG_CAT, getString(R.string.error_nfc_io), e, Hybris.getAppContext()); } catch (FormatException e) { LoggingUtils.e(LOG_CAT, getString(R.string.error_nfc_format), e, Hybris.getAppContext()); } finally { try { ndef.close(); } catch (IOException e) { } } } else if (NFCUtil.supportsNdefFormatable(tag)) { NdefFormatable ndefFormatable = NdefFormatable.get(tag); try { ndefFormatable.connect(); if (getResources().getBoolean(R.bool.nfc_read_only)) { ndefFormatable.formatReadOnly(this.msg); } else { ndefFormatable.format(this.msg); } setResult(RESULT_OK); showDialogFragmentWithMessage(R.string.nfc_tag_written); } catch (IOException e) { LoggingUtils.e(LOG_CAT, getString(R.string.error_nfc_io), e, Hybris.getAppContext()); } catch (FormatException e) { LoggingUtils.e(LOG_CAT, getString(R.string.error_nfc_format), e, Hybris.getAppContext()); } finally { try { ndefFormatable.close(); } catch (IOException e) { } } } else { showDialogFragmentWithMessage(R.string.error_nfc_no_ndef); } }
From source file:com.google.samples.apps.iosched.ui.NfcBadgeActivity.java
private void readTag(Tag t) { byte[] id = t.getId(); // get NDEF tag details Ndef ndefTag = Ndef.get(t); // get NDEF message details NdefMessage ndefMesg = ndefTag.getCachedNdefMessage(); if (ndefMesg == null) { return;/*w w w. j a v a 2 s . c om*/ } NdefRecord[] ndefRecords = ndefMesg.getRecords(); if (ndefRecords == null) { return; } for (NdefRecord record : ndefRecords) { short tnf = record.getTnf(); String type = new String(record.getType()); if (tnf == NdefRecord.TNF_WELL_KNOWN && Arrays.equals(type.getBytes(), NdefRecord.RTD_URI)) { String url = new String(record.getPayload()); recordBadge(url); } } }
From source file:jp.co.brilliantservice.android.writertduri.HomeActivity.java
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); String action = intent.getAction(); if (TextUtils.isEmpty(action)) return;//w w w .j a v a 2s .c o m if (!action.equals(NfcAdapter.ACTION_TECH_DISCOVERED)) return; // NdefMessage? String uri = "http://www.brilliantservice.co.jp/"; NdefMessage message = createUriMessage(uri); // ?????????? Tag tag = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); List<String> techList = Arrays.asList(tag.getTechList()); if (techList.contains(Ndef.class.getName())) { Ndef ndef = Ndef.get(tag); writeNdefToNdefTag(ndef, message); Toast.makeText(getApplicationContext(), "wrote NDEF to NDEF tag", Toast.LENGTH_SHORT).show(); } else if (techList.contains(NdefFormatable.class.getName())) { NdefFormatable ndef = NdefFormatable.get(tag); writeNdefToNdefFormatable(ndef, message); Toast.makeText(getApplicationContext(), "wrote NDEF to NDEFFormatable tag", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "NDEF Not Supported", Toast.LENGTH_SHORT).show(); } }
From source file:jp.co.brilliantservice.android.writertdtext.HomeActivity.java
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); String action = intent.getAction(); if (TextUtils.isEmpty(action)) return;/*from ww w . ja v a2 s . co m*/ if (!action.equals(NfcAdapter.ACTION_TECH_DISCOVERED)) return; // NdefMessage? String languageCode = "en"; String text = String.format("Hello, World.(%s)", DATE_FORMAT.format(System.currentTimeMillis())); NdefMessage message = createTextMessage(text, languageCode); // ?????????? Tag tag = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); List<String> techList = Arrays.asList(tag.getTechList()); if (techList.contains(Ndef.class.getName())) { Ndef ndef = Ndef.get(tag); writeNdefToNdefTag(ndef, message); Toast.makeText(getApplicationContext(), "wrote NDEF to NDEF tag", Toast.LENGTH_SHORT).show(); } else if (techList.contains(NdefFormatable.class.getName())) { NdefFormatable ndef = NdefFormatable.get(tag); writeNdefToNdefFormatable(ndef, message); Toast.makeText(getApplicationContext(), "wrote NDEF to NDEFFormatable tag", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "NDEF Not Supported", Toast.LENGTH_SHORT).show(); } }
From source file:de.berlin.magun.nfcmime.core.RfidDAO.java
/** * @param tag Tag/*from w w w. ja v a 2 s . c o m*/ * @return an ArrayList of cached NdefMimeRecords, i.e. doesn't perform a read operation * on the NFC adapter. Will return null if the cache doesn't hold a Ndef object. */ public ArrayList<NdefMimeRecord> getCachedMimeRecords(Tag tag) { NdefSingleton.getInstance().setNdef(Ndef.get(tag)); if (NdefSingleton.getInstance().getNdef() != null) { if (NdefSingleton.getInstance().getNdef().getCachedNdefMessage() != null) { this.records = NdefSingleton.getInstance().getNdef().getCachedNdefMessage().getRecords(); return extractMimeRecords(this.records); } } return null; }
From source file:st.alr.homA.ActivityQuickpublishNfc.java
private boolean write(String text, Tag tag) { boolean success = true; NdefRecord aar = NdefRecord.createApplicationRecord("st.alr.homA"); NdefRecord[] records = { createRecord(text), aar }; NdefMessage ndefMsg = new NdefMessage(records); try {// w w w . j a v a2 s .c o m Ndef ndef = Ndef.get(tag); if (ndef != null) { ndef.connect(); if (!ndef.isWritable()) { publishProgress(getResources().getString(R.string.nfcWriteDialogTagReadOnly), false); success = false; } if (ndef.getMaxSize() < ndefMsg.getByteArrayLength()) { publishProgress( getResources().getString(R.string.nfcWriteDialogTagCapacityIs) + ndef.getMaxSize() + " byte" + getResources().getString(R.string.nfcWriteDialogTagMessageSizeIs) + ndefMsg.getByteArrayLength() + "byte.", false); success = false; } ndef.writeNdefMessage(ndefMsg); success = true; } else { NdefFormatable format = NdefFormatable.get(tag); if (format != null) { try { format.connect(); format.format(ndefMsg); publishProgress(getResources().getString(R.string.nfcWriteDialogTagFormatedAndWrote), true); success = true; } catch (IOException e) { publishProgress(getResources().getString(R.string.nfcWriteDialogTagFailedToFormat), false); success = false; } } else { publishProgress(getResources().getString(R.string.nfcWriteDialogTagNoNDEFSupport), false); success = false; } } } catch (Exception e) { Log.e(this.toString(), getResources().getString(R.string.nfcWriteDialogTagFailedToWrite) + " (" + e.getMessage() + ")", e); } return success; }