1

あるデバイスから別のデバイスにタグを共有する必要があります。Android2.3.3ギャラクシーがあります。あるデバイスから別のデバイスにタグを共有するためのコードを教えてください。

開発者サイトからこのコードを取得しましたが、その行にエラーが表示されます

 mNfcAdapter.setNdefPushMessageCallback(this, this);


  // 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);

現在、enable forgroundメッセージを使用していますが、正常に動作しますが、エミュレーションの表示方法は..

public class DemoNFCtagActivity extends Activity {

    NdefMessage msg;

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();

           mNfcAdapter.enableForegroundNdefPush(this,msg );

    }

    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;
    }
}
4

1 に答える 1

0

NfcAdapter.setNdefPushMessageCallback()Android4.0ICS以降でのみ使用できます。enableForegroundNdefPush()代わりに使用してください。

于 2012-07-20T10:43:22.003 に答える