本文整理匯總了Java中android.nfc.tech.Ndef類的典型用法代碼示例。如果您正苦於以下問題:Java Ndef類的具體用法?Java Ndef怎麽用?Java Ndef使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
Ndef類屬於android.nfc.tech包,在下文中一共展示了Ndef類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: registerTagEvent
import android.nfc.tech.Ndef; //導入依賴的package包/類
@ReactMethod
private void registerTagEvent(String alertMessage, Boolean invalidateAfterFirstRead, Callback callback) {
Log.d(LOG_TAG, "registerTag");
isForegroundEnabled = true;
// capture all mime-based dispatch NDEF
IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
try {
ndef.addDataType("*/*");
} catch (MalformedMimeTypeException e) {
throw new RuntimeException("fail", e);
}
intentFilters.add(ndef);
// capture all rest NDEF, such as uri-based
intentFilters.add(new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED));
techLists.add(new String[]{Ndef.class.getName()});
// for those without NDEF, get them as tags
intentFilters.add(new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED));
if (isResumed) {
enableDisableForegroundDispatch(true);
}
callback.invoke();
}
示例2: writeTag
import android.nfc.tech.Ndef; //導入依賴的package包/類
/**
* 寫入標簽
*
* @param message
* @param tag
* @return
*/
public static boolean writeTag(NdefMessage message, Tag tag) {
int size = message.toByteArray().length;
try {
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;
}
} catch (Exception e) {
}
return false;
}
示例3: getNdefUsedSize
import android.nfc.tech.Ndef; //導入依賴的package包/類
private DataReply getNdefUsedSize() {
DataReply dataReply = new DataReply();
int size = 0;
if (currentTag != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD_MR1) {
Ndef ndef = Ndef.get(currentTag);
if (ndef != null && ndef.getCachedNdefMessage() != null)
size = ndef.getCachedNdefMessage().toByteArray().length;
else {
dataReply.setError(TAG_READING_ERROR);
return dataReply;
}
try {
if (ndef != null) ndef.close();
} catch (IOException e) {
}
}
}
dataReply.setIntegerData(size);
return dataReply;
}
示例4: getNdefMaxSize
import android.nfc.tech.Ndef; //導入依賴的package包/類
private DataReply getNdefMaxSize() {
DataReply dataReply = new DataReply();
int maxSize = 0;
if (currentTag != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD_MR1) {
Ndef ndef = Ndef.get(currentTag);
if (ndef != null) {
maxSize = ndef.getMaxSize();
if (maxSize <= 0){
dataReply.setError(TAG_READING_ERROR);
return dataReply;
}
}else {
dataReply.setError(TAG_READING_ERROR);
return dataReply;
}
try {
if (ndef != null) ndef.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
dataReply.setIntegerData(maxSize);
return dataReply;
}
示例5: writeTAG
import android.nfc.tech.Ndef; //導入依賴的package包/類
protected void writeTAG(Tag tag) throws IOException, FormatException {
Ndef ndefTag = Ndef.get(tag);
byte[] stringBytes = passphrase.getBytes();
NdefRecord data = NdefRecord.createMime(CONST.NFC_MIME_LOGIN, stringBytes);
NdefMessage message = new NdefMessage(data);
if (ndefTag != null) { //write to formatted tag
ndefTag.connect();
ndefTag.writeNdefMessage(message);
} else { //format the tag
NdefFormatable format = NdefFormatable.get(tag);
if(format != null) {
format.connect();
format.format(message);
}
}
}
示例6: nfcRead
import android.nfc.tech.Ndef; //導入依賴的package包/類
public String nfcRead(Tag t)
{
Tag tag = t;
Ndef ndef = Ndef.get(tag);
if (ndef == null) {
return null;
}
NdefMessage ndefMessage = ndef.getCachedNdefMessage();
NdefRecord[] records = ndefMessage.getRecords();
for (NdefRecord ndefRecord : records)
{
if (ndefRecord.getTnf() == NdefRecord.TNF_WELL_KNOWN && Arrays.equals(ndefRecord.getType(), NdefRecord.RTD_TEXT))
{
try {return readText(ndefRecord);} catch (UnsupportedEncodingException e) {}
}
}
return null;
}
示例7: doInBackground
import android.nfc.tech.Ndef; //導入依賴的package包/類
@Override
protected NFCTag doInBackground(Intent... params) {
Intent intent = params[0];
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Ndef ndef = Ndef.get(tag);
if (ndef == null) {
return null;
}
NdefMessage ndefMessage = ndef.getCachedNdefMessage();
if(ndefMessage != null) {
NdefRecord[] records = ndefMessage.getRecords();
for (NdefRecord ndefRecord : records) {
try {
return new NFCTag(ndefRecord).decode();
} catch (UnsupportedEncodingException e) {
Log.e("NFC", "Unsupported Encoding", e);
}
}
}
return null;
}
示例8: writeToNfc
import android.nfc.tech.Ndef; //導入依賴的package包/類
private void writeToNfc(Ndef ndef, String message){
mTvMessage.setText(getString(R.string.message_write_progress));
if (ndef != null) {
try {
ndef.connect();
NdefRecord mimeRecord = NdefRecord.createMime("text/plain", message.getBytes(Charset.forName("US-ASCII")));
ndef.writeNdefMessage(new NdefMessage(mimeRecord));
ndef.close();
//Write Successful
mTvMessage.setText(getString(R.string.message_write_success));
} catch (IOException | FormatException e) {
e.printStackTrace();
mTvMessage.setText(getString(R.string.message_write_error));
} finally {
mProgress.setVisibility(View.GONE);
}
}
}
示例9: onNewIntent
import android.nfc.tech.Ndef; //導入依賴的package包/類
@Override
protected void onNewIntent(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Log.d(TAG, "onNewIntent: "+intent.getAction());
if(tag != null) {
Toast.makeText(this, getString(R.string.message_tag_detected), Toast.LENGTH_SHORT).show();
Ndef ndef = Ndef.get(tag);
if (isDialogDisplayed) {
if (isWrite) {
String messageToWrite = mEtMessage.getText().toString();
mNfcWriteFragment = (NFCWriteFragment) getFragmentManager().findFragmentByTag(NFCWriteFragment.TAG);
mNfcWriteFragment.onNfcDetected(ndef,messageToWrite);
} else {
mNfcReadFragment = (NFCReadFragment)getFragmentManager().findFragmentByTag(NFCReadFragment.TAG);
mNfcReadFragment.onNfcDetected(ndef);
}
}
}
}
示例10: writeTag
import android.nfc.tech.Ndef; //導入依賴的package包/類
public void writeTag(Tag tag, NdefMessage message)
{
if (tag != null) {
try {
Ndef ndefTag = Ndef.get(tag);
if (ndefTag == null) {
// Let's try to format the Tag in NDEF
NdefFormatable nForm = NdefFormatable.get(tag);
if (nForm != null) {
nForm.connect();
nForm.format(message);
nForm.close();
}
}
else {
ndefTag.connect();
ndefTag.writeNdefMessage(message);
ndefTag.close();
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}
示例11: getTagText
import android.nfc.tech.Ndef; //導入依賴的package包/類
public String getTagText() throws Exception
{
if (tag == null)
{
throw new Exception("Please call handle new read as tag is null");
}
Ndef ndef = Ndef.get(tag);
NdefMessage ndefMessage = ndef.getCachedNdefMessage();
NdefRecord[] records = ndefMessage.getRecords();
for (NdefRecord ndefRecord : records)
{
if (ndefRecord.getTnf() == NdefRecord.TNF_WELL_KNOWN && Arrays.equals(ndefRecord.getType(), NdefRecord.RTD_TEXT))
{
try
{
return readText(ndefRecord);
}
catch (UnsupportedEncodingException e)
{
Toast.makeText(activity, "Unsupported encoding", Toast.LENGTH_SHORT).show();
}
}
}
return null;
}
示例12: writeTag
import android.nfc.tech.Ndef; //導入依賴的package包/類
/**
* Writes an NdefMessage to a NFC tag
*/
public static void writeTag(NdefMessage message, Tag tag) throws Exception {
int size = message.toByteArray().length;
Ndef ndef = Ndef.get(tag);
if (ndef != null) {
ndef.connect();
if (!ndef.isWritable()) {
throw new NfcTagNotWritableException();
}
if (ndef.getMaxSize() < size) {
throw new NfcTagInsufficientMemoryException(ndef.getMaxSize(), size);
}
ndef.writeNdefMessage(message);
} else {
NdefFormatable format = NdefFormatable.get(tag);
if (format != null) {
format.connect();
format.format(message);
} else {
throw new IllegalArgumentException("Ndef format is NULL");
}
}
}
示例13: doInBackground
import android.nfc.tech.Ndef; //導入依賴的package包/類
@Override
protected ArrayList<String> doInBackground(Tag... params) {
Tag tag = params[0];
Ndef ndef = Ndef.get(tag);
if (ndef == null) {
// NDEF is not supported by this Tag.
return null;
}
ArrayList<String> results = new ArrayList<>();
NdefMessage ndefMessage = ndef.getCachedNdefMessage();
NdefRecord[] records = ndefMessage.getRecords();
for (NdefRecord ndefRecord : records) {
if (ndefRecord.getTnf() == NdefRecord.TNF_WELL_KNOWN && Arrays.equals(ndefRecord.getType(), NdefRecord.RTD_TEXT)) {
try {
results.add(readText(ndefRecord));
} catch (UnsupportedEncodingException e) {
Log.e(TAG, "Unsupported Encoding", e);
}
}
}
return results;
}
示例14: writableTag
import android.nfc.tech.Ndef; //導入依賴的package包/類
public static boolean writableTag(Tag tag) {
try {
Ndef ndef = Ndef.get(tag);
if (ndef != null) {
ndef.connect();
if (!ndef.isWritable()) {
ndef.close();
return false;
}
ndef.close();
return true;
}
} catch (Exception e) {
}
return false;
}
示例15: readTag
import android.nfc.tech.Ndef; //導入依賴的package包/類
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;
}
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);
}
}
}