在两个nfc设备之间启动仿真,我正在使用该代码但没有任何事情发生,该怎么办?

时间:2012-07-20 11:58:17

标签: android nfc

我正在使用该代码,但没有任何事情发生,这个代码的问题是什么。 它正在运行,没有显示任何错误。 我必须将标签从一个设备共享到另一个设备。

请与我分享一些代码,用于将标签从一台设备共享到另一台设备。

package com.app.app.nfctag;

    import java.nio.charset.Charset;

    import android.app.Activity;
    import android.app.PendingIntent;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.nfc.NdefMessage;
    import android.nfc.NdefRecord;
    import android.nfc.NfcAdapter;
    import android.os.Bundle;
    import android.os.Parcelable;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;

    public class DemoNFCtagActivity extends Activity {

          NdefMessage msg;

        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
             if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
                    processIntent(getIntent());
                }
               mNfcAdapter.enableForegroundNdefPush(this,msg );

        }
         @Override
            public void onNewIntent(Intent intent) {
                // onResume gets called after this to handle the intent
                setIntent(intent);
            }

        NfcAdapter mNfcAdapter;
        TextView textView;

        Button btnEmulation;
        PendingIntent mNfcPendingIntent;
        IntentFilter[] mNdefExchangeFilters;
        NdefMessage message;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

           // TextView textView = (TextView) findViewById(R.id.textView);
            // Check for available NFC Adapter
            mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
            if (mNfcAdapter == null) {
                Toast.makeText(this, "NFC is not available", Toast.LENGTH_LONG).show();
                finish();
                return;
            }
            // Register callback
        //    mNfcAdapter.setNdefPushMessageCallback(this, this);


            String text = ("Beam me up, Android!\n\n" +
                    "Beam Time: " + System.currentTimeMillis());
             msg = new NdefMessage(
                    new NdefRecord[] { createMimeRecord(
                            "application/com.example.android.beam", text.getBytes())
             /**
              * The Android Application Record (AAR) is commented out. When a device
              * receives a push with an AAR in it, the application specified in the AAR
              * is guaranteed to run. The AAR overrides the tag dispatch system.
              * You can add it back in to guarantee that this
              * activity starts when receiving a beamed message. For now, this code
              * uses the tag dispatch system.
              */
              //,NdefRecord.createApplicationRecord("com.example.android.beam")
            });






        }

        public NdefRecord createMimeRecord(String mimeType, byte[] payload) {
            byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII"));
            NdefRecord mimeRecord = new NdefRecord(
                    NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload);
            return mimeRecord;
        }

        void processIntent(Intent intent) {
            textView = (TextView) findViewById(R.id.textView);
            Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
                    NfcAdapter.EXTRA_NDEF_MESSAGES);
            // only one message sent during the beam
            NdefMessage msg = (NdefMessage) rawMsgs[0];
            // record 0 contains the MIME type, record 1 is the AAR, if present
            textView.setText(new String(msg.getRecords()[0].getPayload()));
        }
    }

1 个答案:

答案 0 :(得分:0)

试试这个Android boilerplate project - 它执行以下操作

  1. Detect,然后
  2. Readwrite内容
  3. 另请参阅NFC Eclipse plugin项目以获取图形化NDEF编辑器 - 附带一个实用程序app,可以读取和写入标记,还具有NFC读取器集成: - )