【问题标题】:Programmatic Intent Filter for NFCNFC 的编程意图过滤器
【发布时间】:2011-05-26 17:28:43
【问题描述】:

编辑:我找到了解决方案,见下文

我在 StackOverFlow 上的第一篇文章。但是,我一直在阅读有关此问题的文章一段时间,但没有有效的解决方案。

我想做的是注册以下 Intent:android.nfc.action.TAG_DISCOVERED

我在我的代码中执行以下操作:

    IntentFilter filter = new IntentFilter();
    filter.addAction("android.nfc.action.TAG_DISCOVERED");
    filter.addCategory("android.intent.category.DEFAULT");
    Log.d(TAG, "Created the new filter");
    reciever = new NFCBroadcastReciever(this);
    Log.d(TAG, "Created the new Broadcast Reciever");
    this.registerReceiver(reciever, filter);
    Log.d(TAG, "Registered new reciever");

BroadCastReciever 定义如下:

公共类 NFCBroadcastReciever 扩展 BroadcastReceiver {

private Screen screen;
public static String TAG = "NFCBroadcastReciever";

NFCBroadcastReciever(Screen _screen){
    screen = _screen;
}

@Override
public void onReceive(Context context, Intent intent) {

    String action = intent.getAction();
    Log.d(TAG, "Action recieved: "+action);
    if(action != null && NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)){
        paymentScreen.onNewIntent(intent);
    }
}

}

但是我得到一个异常,即从标签读取触发的意图没有相应的活动。我希望能够仅在我的应用程序的某个时间点开始监听 NFC 事件。

提前感谢您的帮助。

我实际上找到了问题的解决方案,这是让 NFC 事件仅在特定活动处于活动状态而不在其他活动正在运行时发生的关键。 Android SDK 中的示例说明:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundDispatch.html

【问题讨论】:

  • 最好将您的问题作为单独的帖子回答,并将其标记为答案。
  • 感谢您的评论,stackoverflow 的新手,将答案添加为单独的帖子

标签: android intentfilter nfc


【解决方案1】:

我实际上找到了问题的解决方案,这是让 NFC 事件仅在特定活动处于活动状态而不在其他活动正在运行时发生的关键。 Android SDK 中的示例说明:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundDispatch.html

【讨论】:

【解决方案2】:

您是否打算在收到广播后开始活动?在我看来,paymentScreen.onNewIntent(intent); 不会做到这一点。相反,您可能需要构建一个可以与 startActivity() 一起使用的 Intent,并且您可能希望将广播接收器 Intent 中的相关数据以 extra 的形式包含到您的 Activity Intent 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多