【问题标题】:Get notified when NDEF is sent / touch to beam is pressed当 NDEF 被发送/触摸到光束被按下时得到通知
【发布时间】:2018-09-27 11:33:12
【问题描述】:

我正在使用setNdefPushMessageCallback 通过 Android Beam (TM) 从一台 Android 设备向另一台设备发送 NDEF 消息(文本/纯文本)。在onResume,我正在检查ACTION_NDEF_DISCOVERED,所以通过这种方式,正在检测/接收消息的Android手机会收到通知。

但是我怎样才能在另一部手机(发送消息的手机)中获得通知?我认为应该有一种方法可以检测我们何时触摸屏幕以发送消息,但我没有看到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());
    }
    ...
}

【问题讨论】:

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


    【解决方案1】:

    您可以注册OnNdefPushCompleteCallback

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        mAdapter.setOnNdefPushCompleteCallback(this, this);
        mAdapter.setNdefPushMessageCallback(this, this);
    }
    
    @Override
    public void onNdefPushComplete(NfcEvent event) {
        ...
    }
    

    当消息成功推送到 Beam 时,将调用此回调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多