當前位置: 首頁>>代碼示例>>Java>>正文


Java Ndef.isWritable方法代碼示例

本文整理匯總了Java中android.nfc.tech.Ndef.isWritable方法的典型用法代碼示例。如果您正苦於以下問題:Java Ndef.isWritable方法的具體用法?Java Ndef.isWritable怎麽用?Java Ndef.isWritable使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.nfc.tech.Ndef的用法示例。


在下文中一共展示了Ndef.isWritable方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: 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;
}
 
開發者ID:jopenbox,項目名稱:android-nfc,代碼行數:27,代碼來源:WriteUriActivity.java

示例2: 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");
        }
    }
}
 
開發者ID:Power-Switch,項目名稱:PowerSwitch_Android,代碼行數:26,代碼來源:NfcHandler.java

示例3: 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;
}
 
開發者ID:legendmohe,項目名稱:LEHomeMobile_android,代碼行數:17,代碼來源:NFCHelper.java

示例4: readTagFromIntent

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
private void readTagFromIntent(Intent intent) {
    if (intent != null){
        String action = intent.getAction();
        if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) {
            tagReaded = true;

            // get NDEF tag details
            Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
            if (tag != null) {
                Ndef ndefTag = Ndef.get(tag);
                //int tagSize = ndefTag.getMaxSize();         // tag size
                tagIsWritable = ndefTag.isWritable();   // is tag writable?
                //String tagType = ndefTag.getType();            // tag type

                Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
                if (rawMsgs != null) {
                    NdefRecord[] records = ((NdefMessage) rawMsgs[0]).getRecords();
                    String text = ndefRecordToString(records[0]);
                    onTagReadListener.onTagRead(text);
                }
            }
        }
    }
}
 
開發者ID:henrichg,項目名稱:PhoneProfilesPlus,代碼行數:25,代碼來源:NFCTagReadWriteManager.java

示例5: writableTag

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
private boolean writableTag(Tag tag) {

		try {
			Ndef ndef = Ndef.get(tag);
			if (ndef != null) {
				ndef.connect();
				if (!ndef.isWritable()) {
					ToastUtils.makeWarningToast(this, "Tag is Read-Only.");

					ndef.close();
					return false;
				}
				ndef.close();
				return true;
			}
		} catch (Exception e) {
			Logger.e(TAG, e.getLocalizedMessage());
			ToastUtils.makeWarningToast(this, "Failed to Read Tag");
		}

		return false;
	}
 
開發者ID:MikeFot,項目名稱:Android--Event-Triggered-Skype-Caller,代碼行數:23,代碼來源:WriteNFCActivity.java

示例6: programTag

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
@Override
public ThereWas programTag(ProgramableTag tag) {
    Intent intent = parentActivity.getIntent();

    if (aTagWeCanHandleWasScanned(intent)) {
        Ndef ndefTag = getNdefTagFrom(intent);

        if (!ndefTag.isWritable()) {
            throw new TagIsNotWritable();
        }

        program(ndefTag, tag);
        return ThereWas.A_TAG_TO_PROGRAM;
    }

    return ThereWas.NO_TAG_TO_PROGRAM;
}
 
開發者ID:jthurne,項目名稱:kanban-salad,代碼行數:18,代碼來源:NfcProgramer.java

示例7: writeNfcTag

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
private void writeNfcTag(@NonNull final Tag tag) {
    final Ndef ndef = Ndef.get(tag);

    if (ndef == null) {
        showWriteError(getText(R.string.nfc_error_no_ndef));
        return;
    }

    if (!ndef.isWritable()) {
        showWriteError(getText(R.string.nfc_error_not_writable));
        return;
    }

    final NdefMessage message = NdefUtils.toNdefMessage(mPassword);

    final int messageLength = message.getByteArrayLength();
    final int maxSize = ndef.getMaxSize();

    if (messageLength > maxSize) {
        showWriteError(
                getString(R.string.nfc_error_not_enough_space_format, messageLength, maxSize));
        return;
    }

    new TagWriteTask(this).execute(new TagWriteParam(ndef, message));
}
 
開發者ID:xxv,項目名稱:SuperGenPass,代碼行數:27,代碼來源:NfcWriteFragment.java

示例8: writeMessage

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
private void writeMessage(Tag tag, NdefMessage ndefMessage)
{
    try
    {
        if (tag == null)
        {
            Toast.makeText(this, "An Error has Occurred, Please Try Again", Toast.LENGTH_LONG).show();
        }

        Ndef ndef = Ndef.get(tag);

        if (ndef == null)
        {
            formatTag(tag, ndefMessage);
        }
        else
        {
            ndef.connect();

            if (!ndef.isWritable())
            {
                Toast.makeText(this, "Tag is not Writable", Toast.LENGTH_LONG).show();
                ndef.close();
                return;
            }

            ndef.writeNdefMessage(ndefMessage);
            ndef.close();
        }
    }
    catch (Exception e)
    {
        Log.e("writeMessage", e.getMessage());
    }
}
 
開發者ID:ThomasDelaney,項目名稱:TapIn,代碼行數:36,代碼來源:add3.java

示例9: writeNFCTag

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
/**
 * 往標簽寫數據的方法
 *
 * @param tag
 */
public void writeNFCTag(Tag tag) {
    if (tag == null) {
        return;
    }
    NdefMessage ndefMessage = new NdefMessage(new NdefRecord[]{NdefRecord
            .createApplicationRecord(mPackageName)});
    //轉換成字節獲得大小
    int size = ndefMessage.toByteArray().length;
    try {
        //2.判斷NFC標簽的數據類型(通過Ndef.get方法)
        Ndef ndef = Ndef.get(tag);
        //判斷是否為NDEF標簽
        if (ndef != null) {
            ndef.connect();
            //判斷是否支持可寫
            if (!ndef.isWritable()) {
                return;
            }
            //判斷標簽的容量是否夠用
            if (ndef.getMaxSize() < size) {
                return;
            }
            //3.寫入數據
            ndef.writeNdefMessage(ndefMessage);
            Toast.makeText(this, "寫入成功", Toast.LENGTH_SHORT).show();
        } else { //當我們買回來的NFC標簽是沒有格式化的,或者沒有分區的執行此步
            //Ndef格式類
            NdefFormatable format = NdefFormatable.get(tag);
            //判斷是否獲得了NdefFormatable對象,有一些標簽是隻讀的或者不允許格式化的
            if (format != null) {
                //連接
                format.connect();
                //格式化並將信息寫入標簽
                format.format(ndefMessage);
                Toast.makeText(this, "寫入成功", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "寫入失敗", Toast.LENGTH_SHORT).show();
            }
        }
    } catch (Exception e) {
    }
}
 
開發者ID:jopenbox,項目名稱:android-nfc,代碼行數:48,代碼來源:RunAppActivity.java

示例10: writeNdefMessage

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
private void writeNdefMessage(Tag tag, NdefMessage ndefMessage) {

        try {

            if (tag == null) {
                Toast.makeText(this, "Tag object cannot be null", Toast.LENGTH_SHORT).show();
                return;
            }

            Ndef ndef = Ndef.get(tag);

            if (ndef == null) {
                // format tag with the ndef format and writes the message.
                formatTag(tag, ndefMessage);
            } else {
                ndef.connect();

                if (!ndef.isWritable()) {
                    Toast.makeText(this, "Tag is not writable!", Toast.LENGTH_SHORT).show();

                    ndef.close();
                    return;
                }

                ndef.writeNdefMessage(ndefMessage);
                ndef.close();

                Toast.makeText(this, "Tag writen!", Toast.LENGTH_SHORT).show();

            }

        } catch (Exception e) {
            Log.e("writeNdefMessage", e.getMessage());
        }

    }
 
開發者ID:tekesan,項目名稱:TraiNFCUI,代碼行數:37,代碼來源:Tap.java

示例11: writeNdefMessage

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
private void writeNdefMessage(Tag tag, NdefMessage ndefMessage) {
    try {

        if(tag == null) {
            Toast.makeText(this, "Tag object cannot be null", Toast.LENGTH_SHORT).show();
            return;
        }

        Ndef ndef = Ndef.get(tag);


        if(ndef == null) {
            //format tag with ndef format and writes message
            formatTag(tag,ndefMessage);
        } else {
            ndef.connect();

            if(!ndef.isWritable()) {
                Toast.makeText(this, "Tag is not writable! ", Toast.LENGTH_SHORT).show();
                ndef.close();
                return;
            }

            ndef.writeNdefMessage(ndefMessage);
            ndef.close();

            Toast.makeText(this, "Tag Written!! :) ", Toast.LENGTH_SHORT).show();
        }

    } catch (Exception e) {
        Log.e("writeNdefMessage", e.getMessage());
    }
}
 
開發者ID:JimSeker,項目名稱:nfc,代碼行數:34,代碼來源:MainActivity.java

示例12: writeNFCTag

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
/**
 * 往標簽寫數據的方法
 *
 * @param tag
 */
public void writeNFCTag(Tag tag) {
    if (tag == null) {
        return;
    }
    NdefMessage ndefMessage = new NdefMessage(new NdefRecord[]{NdefRecord
            .createUri(Uri.parse("http://www.baidu.com"))});
    //轉換成字節獲得大小
    int size = ndefMessage.toByteArray().length;
    try {
        //2.判斷NFC標簽的數據類型(通過Ndef.get方法)
        Ndef ndef = Ndef.get(tag);
        //判斷是否為NDEF標簽
        if (ndef != null) {
            ndef.connect();
            //判斷是否支持可寫
            if (!ndef.isWritable()) {
                return;
            }
            //判斷標簽的容量是否夠用
            if (ndef.getMaxSize() < size) {
                return;
            }
            //3.寫入數據
            ndef.writeNdefMessage(ndefMessage);
            Toast.makeText(this, "寫入成功", Toast.LENGTH_SHORT).show();
        } else { //當我們買回來的NFC標簽是沒有格式化的,或者沒有分區的執行此步
            //Ndef格式類
            NdefFormatable format = NdefFormatable.get(tag);
            //判斷是否獲得了NdefFormatable對象,有一些標簽是隻讀的或者不允許格式化的
            if (format != null) {
                //連接
                format.connect();
                //格式化並將信息寫入標簽
                format.format(ndefMessage);
                Toast.makeText(this, "寫入成功",
                        Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "寫入失敗", Toast.LENGTH_SHORT).show();
            }
        }
    } catch (Exception e) {
    }
}
 
開發者ID:jopenbox,項目名稱:android-nfc,代碼行數:49,代碼來源:RunUrlActivity.java

示例13: onNewIntent

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
/**
 * Listen to NFC incomming data
 */
@Override
public void onNewIntent(Intent intent) {
    MLog.d(TAG, "New intent " + intent);

    if (intent.getAction() != null) {
        MLog.d(TAG, "Discovered tag with intent: " + intent);

        Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        String nfcID = StrUtils.bytetostring(tag.getId());

        // if there is a message waiting to be written
        if (PNfc.nfcMsg != null) {
            MLog.d(TAG, "->" + PNfc.nfcMsg);
            PNfc.writeTag(this, tag, PNfc.nfcMsg);
            if (onNFCWrittenListener != null) onNFCWrittenListener.onNewTag();
            onNFCWrittenListener = null;
            PNfc.nfcMsg = null;

        // read the nfc tag info
        } else {
            // get NDEF tag details
            Ndef ndefTag = Ndef.get(tag);
            if (ndefTag == null) {
                return;
            }

            int size = ndefTag.getMaxSize(); // tag size
            boolean writable = ndefTag.isWritable(); // is tag writable?
            String type = ndefTag.getType(); // tag type

            String nfcMessage = "";

            // get NDEF message details
            NdefMessage ndefMesg = ndefTag.getCachedNdefMessage();
            if (ndefMesg != null) {
                NdefRecord[] ndefRecords = ndefMesg.getRecords();
                int len = ndefRecords.length;
                String[] recTypes = new String[len]; // will contain the
                // NDEF record types
                String[] recPayloads = new String[len]; // will contain the
                // NDEF record types
                for (int i = 0; i < len; i++) {
                    recTypes[i] = new String(ndefRecords[i].getType());
                    recPayloads[i] = new String(ndefRecords[i].getPayload());
                    MLog.d(TAG, "qq " + i + " " + recTypes[i] + " " + recPayloads[i]);

                }
                nfcMessage = recPayloads[0];
            }
            if (onNFCListener != null) onNFCListener.onNewTag(nfcID, nfcMessage);
        }
    }
}
 
開發者ID:victordiaz,項目名稱:phonk,代碼行數:57,代碼來源:AppRunnerActivity.java

示例14: writeNFCTag

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
private void writeNFCTag(Tag tag){
	if(tag == null){
		return;
	}
	
	NdefMessage ndefMessage = new NdefMessage( new NdefRecord[]{NdefRecord.createUri(Uri.parse("http://www.baidu.com"))} );
	int size = ndefMessage.toByteArray().length;
	
	try {
		Ndef ndef = Ndef.get(tag);
		//���ж�һ�������ǩ�Dz���NDEF��
		if(ndef != null){ //�����NDEF��ʽ��
			ndef.connect();
			//�����ж������ǩ�Ƿ��ǿ�д��
			if( ! ndef.isWritable()){ //����Dz���д�ģ�ֱ�ӾͿ��Խ�����
				Toast.makeText(this , "��NFC��ǩ����д!" , Toast.LENGTH_SHORT).show();
				return;
			}
			//�����жϵ�ǰ��ǩ����������Ƿ���װ������Ҫд�����Ϣ
			if(ndef.getMaxSize() < size){
				Toast.makeText(this , "��NFC��ǩ������д����̫С!" , Toast.LENGTH_SHORT).show();
				return;
			}
			//����Ϊֹ���Ϳ��Է��ĵİѶ���д��NFC��ǩ����
			ndef.writeNdefMessage(ndefMessage);
			Toast.makeText(this , "NFC��ǩд�����ݳɹ�" , Toast.LENGTH_SHORT).show();
		}
		else{ //�������NDEF��ʽ��
			//���Խ������NDEF��ǩ��ʽ����NDEF��ʽ��
			NdefFormatable format = NdefFormatable.get(tag);
			//��Ϊ��Щ��ǩ��ֻ���ģ�����������Ҫ�ж�һ��
			//���format��Ϊnull����ʾ�����ǩ�ǿ��Խ��ܸ�ʽ����
			if(format != null){
				format.connect();
				format.format(ndefMessage); //ͬʱ����˸�ʽ����д����Ϣ�IJ���
				Toast.makeText(this , "NFC��ǩ��ʽ��д��ɹ�" , Toast.LENGTH_SHORT).show();
			}
			else{
				Toast.makeText(this , "��NFC��ǩ�޷�����ʽ��" , Toast.LENGTH_SHORT).show();
			}
		}
	} 
	catch (Exception e) {
		Toast.makeText(this , "�޷���ȡ��NFC��ǩ" , Toast.LENGTH_SHORT).show();
	}
}
 
開發者ID:ZhaoYukai,項目名稱:NFCApp2,代碼行數:47,代碼來源:AutoOpenUriActivity.java

示例15: handleIntent

import android.nfc.tech.Ndef; //導入方法依賴的package包/類
private void handleIntent(Intent intent) {
    /*
    *   Else just read tag as usual.
    * */
    /*
        This detects the intent and calls an nfc reading task
        I modified this to keep the tag object exposed in this class.
        This is since we will want to write to the same tag later.
     */
    String action = intent.getAction();

    // We want to read only valid html tags
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action))
    {
        boolean mime_type_found = false;
        String type = intent.getType();

        if (MIME_TEXT_HTML.equals(type))
        {
            Toast.makeText(this, "Reading Html Tag", Toast.LENGTH_SHORT).show();
            tag_compression_mode = CompressionMode_Enum.NONE;
            mime_type_found = true;
        }
        else
        if (MIME_TEXT_HTML_GZIP.equals(type))
        {
            Toast.makeText(this, "Reading Gzipped Html Tag", Toast.LENGTH_SHORT).show();
            tag_compression_mode = CompressionMode_Enum.GZIP;
            mime_type_found = true;
        }


        // if plain/html
        if (mime_type_found) {
            tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
            new NdefReaderTask().execute(tag);
        } else {
            //Log.d(TAG, "Wrong mime type: " + type);
        }
    }
    else
    {
        Log.e(LOGGER_TAG, "Skipping Tag as it is not NDEF");
    }

    /*
        So some useful tag info
        http://stackoverflow.com/questions/9971820/how-to-read-detected-nfc-tag-ndef-content-details-in-android
     */
    if (tag != null) {
        //Toast.makeText(this, "Reading Tag Info", Toast.LENGTH_SHORT).show();
        // get NDEF tag details
        Ndef ndefTag = Ndef.get(tag);

        tag_writable = ndefTag.isWritable(); // is tag writable?

        // get NDEF message details
        NdefMessage ndefMesg = ndefTag.getCachedNdefMessage();
        NdefRecord[] ndefRecords = ndefMesg.getRecords();
        int len = ndefRecords.length;
        recTypes = new String[len];     // will contain the NDEF record types
        for (int i = 0; i < len; i++) {
            recTypes[i] = new String(ndefRecords[i].getType());
        }

        // Get Tag ID
        tagID_string = bytesToHex(tag.getId());
        tag_size = ndefTag.getMaxSize();     // tag size
        tag_type = ndefTag.getType();         // tag type
    }
}
 
開發者ID:mofosyne,項目名稱:NFCMessageBoard,代碼行數:72,代碼來源:ReadHtmlTags.java


注:本文中的android.nfc.tech.Ndef.isWritable方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。