使用NFC写入时的奇怪输出

时间:2013-07-02 13:06:21

标签: android eclipse tags nfc writer

所以现在我有一个NFC项目,我写了一个vcard文件,但输出不是我想要的代码:

 private NdefMessage getNoteAsNdef() {
 //   byte[] textBytes = mName.getText().toString().getBytes();
//    EditText tName = mName;
//    EditText tNumber = mNumber;





    String nameVcard = "BEGIN:VCARD" +"\n"+ "VERSION:2.1" +"\n" + "N:;" + (EditText) findViewById(R.id.mName) + "\n" +"ORG:"+"\n"+ "TEL;WORK:" +(EditText) findViewById(R.id.mNumber)+ "\n" + "END:VCARD";
    byte[] uriField = nameVcard.getBytes(Charset.forName("US-ASCII"));
    byte[] textBytes = new byte[uriField.length + 1];;
    System.arraycopy(uriField, 0, textBytes, 1, uriField.length);

    NdefRecord textRecord = new NdefRecord(
            NdefRecord.TNF_MIME_MEDIA, "text/x-vcard".getBytes(), new byte[0], textBytes);

    return new NdefMessage(new NdefRecord[] {
        textRecord
    });
}

输出是某种奇怪的词,总是有一个" @"

我没有得到它,我必须添加一些东西吗?

2 个答案:

答案 0 :(得分:1)

如果你使用(EditText) findViewById(R.id.mName)加上+一个字符串,它将获得editText的方法toString。这不是你想要得到的。所以你应该使用{{1相反。

答案 1 :(得分:0)

String nameVcard = "BEGIN:VCARD" +"\n"+ "VERSION:2.1" +"\n" + "N:;" + (EditText) findViewById(R.id.mName) + "\n" +"ORG:"+"\n"+ "TEL;WORK:" +(EditText) findViewById(R.id.mNumber)+ "\n" + "END:VCARD";

您在EditText对象上直接使用toString()。你应该改变

(EditText) findViewById(R.id.mName)

((EditText) findViewById(R.id.mName)).getText().toString()
每个EditText