NFC P2P标签拦截

时间:2015-05-12 09:24:46

标签: android android-intent nfc ndef nfc-p2p

我正在使用Eclipse和Android SDK构建Android应用程序。我想在我的应用程序中实现一个NFC P2P功能,因为当您将两部手机背靠背放置时,两者都会发送一个字符串并自动接收一个字符串。这当然会发生在一个单独的活动中。我已设法发送自定义标记(String),但无法拦截它并在之后的应用程序代码中使用它。我怎么能这样做?

这是我到目前为止所做的:

public class MainActivity extends Activity {

public NfcAdapter mAdapter;
PendingIntent mPendingIntent;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);


     mAdapter = NfcAdapter.getDefaultAdapter(this);

     NdefRecord rec = NdefRecord.createUri("www.stackoverflow.com"); 
     NdefMessage ndef = new NdefMessage(rec);

     mAdapter.setNdefPushMessage(ndef, this);
 }

我花了很多时间试图找到并理解拦截标签的解决方案。不成功。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用前台调度系统在您的活动中接收NDEF消息:

  1. onResume()

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
    NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
    nfcAdapter.enableForegroundDispatch(this, pendingIntent, null, null);
    
  2. 收到意图后做一些事情:

    public void onNewIntent(Intent intent) {
        ...
    }