0

だから今私は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
    });
}

出力はある種の奇妙な単語であり、常に「@」が含まれています

わかりません、追加する必要があるものはありますか?

4

2 に答える 2

1

使用(EditText) findViewById(R.id.mName)して文字列を追加すると、 editText+のメソッドが取得されます。これは取得したいものではないため、代わりに使用する必要があります。toString((EditText) findViewById(R.id.mName)).getText().toString()

于 2013-07-02T13:31:03.407 に答える
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

于 2013-07-02T13:07:53.907 に答える