发送 NDEF 时收到通知/触摸到光束被按下
Get notified when NDEF is sent / touch to beam is pressed
我正在使用 setNdefPushMessageCallback
通过 Android Beam (TM) 从一台 Android 设备向另一台设备发送 NDEF 消息 (text/plain)。在 onResume
中,我正在检查 ACTION_NDEF_DISCOVERED
,因此以这种方式通知 Android phone 即 detecting/reciving 消息。
但是我如何才能在另一个 phone(发送消息的那个)中得到通知?我认为应该有一种方法可以检测我们何时触摸屏幕以发送消息,但我没有在 NfcAdapter
上看到为此目的调用的任何常量。
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mAdapter.setNdefPushMessageCallback(this, this);
}
@Override
public NdefMessage createNdefMessage(NfcEvent nfcEvent) {
...
NdefRecord ndefRecord = NdefRecord.createMime("text/plain", message.getBytes());
NdefMessage ndefMessage = new NdefMessage(ndefRecord);
return ndefMessage;
}
@Override
protected void onResume(){
super.onResume();
Intent intent = getIntent();
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] rawMessages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage message = (NdefMessage) rawMessages[0];
status = new String(message.getRecords()[0].getPayload());
}
...
}
您可以注册一个OnNdefPushCompleteCallback
:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mAdapter.setOnNdefPushCompleteCallback(this, this);
mAdapter.setNdefPushMessageCallback(this, this);
}
@Override
public void onNdefPushComplete(NfcEvent event) {
...
}
当消息成功推送到 Beam 时将调用此回调。
我正在使用 setNdefPushMessageCallback
通过 Android Beam (TM) 从一台 Android 设备向另一台设备发送 NDEF 消息 (text/plain)。在 onResume
中,我正在检查 ACTION_NDEF_DISCOVERED
,因此以这种方式通知 Android phone 即 detecting/reciving 消息。
但是我如何才能在另一个 phone(发送消息的那个)中得到通知?我认为应该有一种方法可以检测我们何时触摸屏幕以发送消息,但我没有在 NfcAdapter
上看到为此目的调用的任何常量。
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mAdapter.setNdefPushMessageCallback(this, this);
}
@Override
public NdefMessage createNdefMessage(NfcEvent nfcEvent) {
...
NdefRecord ndefRecord = NdefRecord.createMime("text/plain", message.getBytes());
NdefMessage ndefMessage = new NdefMessage(ndefRecord);
return ndefMessage;
}
@Override
protected void onResume(){
super.onResume();
Intent intent = getIntent();
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] rawMessages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage message = (NdefMessage) rawMessages[0];
status = new String(message.getRecords()[0].getPayload());
}
...
}
您可以注册一个OnNdefPushCompleteCallback
:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mAdapter.setOnNdefPushCompleteCallback(this, this);
mAdapter.setNdefPushMessageCallback(this, this);
}
@Override
public void onNdefPushComplete(NfcEvent event) {
...
}
当消息成功推送到 Beam 时将调用此回调。