Search in sources :

Example 6 with NdefMessage

use of android.nfc.NdefMessage in project cw-omnibus by commonsguy.

the class MainActivity method writeToTag.

void writeToTag(Intent i) {
    Tag tag = i.getParcelableExtra(NfcAdapter.EXTRA_TAG);
    NdefMessage msg = new NdefMessage(new NdefRecord[] { buildNdefRecord() });
    new WriteTagTask(this, msg, tag).execute();
}
Also used : NdefMessage(android.nfc.NdefMessage) Tag(android.nfc.Tag)

Example 7 with NdefMessage

use of android.nfc.NdefMessage in project cw-omnibus by commonsguy.

the class URLTagger method onNewIntent.

@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();
    }
}
Also used : NdefRecord(android.nfc.NdefRecord) NdefMessage(android.nfc.NdefMessage) Tag(android.nfc.Tag)

Example 8 with NdefMessage

use of android.nfc.NdefMessage in project cw-omnibus by commonsguy.

the class WebBeamActivity method handleIntent.

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);
    }
}
Also used : NdefMessage(android.nfc.NdefMessage) Parcelable(android.os.Parcelable)

Example 9 with NdefMessage

use of android.nfc.NdefMessage in project cw-omnibus by commonsguy.

the class WebBeamActivity method createNdefMessage.

@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);
}
Also used : NdefRecord(android.nfc.NdefRecord) NdefMessage(android.nfc.NdefMessage)

Example 10 with NdefMessage

use of android.nfc.NdefMessage in project android_frameworks_base by ResurrectionRemix.

the class Ndef method getNdefMessage.

/**
     * Read the current {@link android.nfc.NdefMessage} on this tag.
     *
     * <p>This always reads the current NDEF Message stored on the tag.
     *
     * <p>Note that this method may return null if the tag was in the
     * INITIALIZED state as defined by NFC Forum, as in that state the
     * tag is formatted to support NDEF but does not contain a message yet.
     *
     * <p>This is an I/O operation and will block until complete. It must
     * not be called from the main application thread. A blocked call will be canceled with
     * {@link IOException} if {@link #close} is called from another thread.
     *
     * <p class="note">Requires the {@link android.Manifest.permission#NFC} permission.
     *
     * @return the NDEF Message, can be null
     * @throws TagLostException if the tag leaves the field
     * @throws IOException if there is an I/O failure, or the operation is canceled
     * @throws FormatException if the NDEF Message on the tag is malformed
     */
public NdefMessage getNdefMessage() throws IOException, FormatException {
    checkConnected();
    try {
        INfcTag tagService = mTag.getTagService();
        if (tagService == null) {
            throw new IOException("Mock tags don't support this operation.");
        }
        int serviceHandle = mTag.getServiceHandle();
        if (tagService.isNdef(serviceHandle)) {
            NdefMessage msg = tagService.ndefRead(serviceHandle);
            if (msg == null && !tagService.isPresent(serviceHandle)) {
                throw new TagLostException();
            }
            return msg;
        } else if (!tagService.isPresent(serviceHandle)) {
            throw new TagLostException();
        } else {
            return null;
        }
    } catch (RemoteException e) {
        Log.e(TAG, "NFC service dead", e);
        return null;
    }
}
Also used : INfcTag(android.nfc.INfcTag) NdefMessage(android.nfc.NdefMessage) IOException(java.io.IOException) RemoteException(android.os.RemoteException) TagLostException(android.nfc.TagLostException)

Aggregations

NdefMessage (android.nfc.NdefMessage)22 NdefRecord (android.nfc.NdefRecord)9 IOException (java.io.IOException)8 INfcTag (android.nfc.INfcTag)7 RemoteException (android.os.RemoteException)7 TagLostException (android.nfc.TagLostException)6 Parcelable (android.os.Parcelable)5 NfcAdapter (android.nfc.NfcAdapter)3 Tag (android.nfc.Tag)3 Intent (android.content.Intent)2 FormatException (android.nfc.FormatException)2 NfcEvent (android.nfc.NfcEvent)2 PaymentIntent (de.schildbach.wallet.data.PaymentIntent)2 Uri (android.net.Uri)1 Ndef (android.nfc.tech.Ndef)1 Handler (android.os.Handler)1 HandlerThread (android.os.HandlerThread)1 BinaryInputParser (de.schildbach.wallet.ui.InputParser.BinaryInputParser)1 UserBean (org.qii.weiciyuan.bean.UserBean)1