我正在使用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);
}
我花了很多时间试图找到并理解拦截标签的解决方案。不成功。
感谢您的帮助。
答案 0 :(得分:0)
您可以使用前台调度系统在您的活动中接收NDEF消息:
在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);
收到意图后做一些事情:
public void onNewIntent(Intent intent) {
...
}