Android NFC用于通知而非活动的意图

Android NFC用于通知而非活动的意图,android,android-intent,android-activity,notifications,nfc,Android,Android Intent,Android Activity,Notifications,Nfc,有没有办法让nfc标签显示通知而不是打开实际活动 我需要我的应用程序在放置在nfc标签上时不显示,而是显示通知。我在谷歌上搜索过一种方法,但没有找到任何东西,因此没有多少代码 我目前已将我的应用程序设置为在发现Ndef标记时打开主活动 前台调度器已启用并工作,我只需要知道一种显示通知的方式,而不是实际的应用程序活动 创建时的主要活动: IntentFilter ndef = new IntentFilter( NfcAdapter.ACTION_NDEF_DISCOVERED ); try {

有没有办法让nfc标签显示通知而不是打开实际活动

我需要我的应用程序在放置在nfc标签上时不显示,而是显示通知。我在谷歌上搜索过一种方法,但没有找到任何东西,因此没有多少代码

我目前已将我的应用程序设置为在发现Ndef标记时打开主活动

前台调度器已启用并工作,我只需要知道一种显示通知的方式,而不是实际的应用程序活动

创建时的主要活动:

IntentFilter ndef = new IntentFilter( NfcAdapter.ACTION_NDEF_DISCOVERED );
try {
    ndef.addDataType( "*/*" );
}
catch (MalformedMimeTypeException e) {
    throw new RuntimeException( "fail", e );
}

nfcFilters = new IntentFilter[] { ndef, };
nfcTechList = new String[][] {
        new String[] { NfcA.class.getName() },
        new String[] { NfcB.class.getName() },
        new String[] { NfcV.class.getName() },
        new String[] { NfcF.class.getName() },
        new String[] { Ndef.class.getName() },
        new String[] { NdefFormatable.class.getName() },
        new String[] { MifareClassic.class.getName() },
        new String[] { MifareUltralight.class.getName() },
        new String[] { IsoDep.class.getName() },
        new String[] { NfcBarcode.class.getName() },
    };
舱单:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:noHistory="true"
    android:windowSoftInputMode="adjustResize|stateHidden"
    android:screenOrientation="portrait" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.nfc.action.NDEF_DISCOVERED" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

</activity>
一款名为Trigger的应用程序可以满足我的需求。当您设置任务并关闭应用程序,然后将应用程序放置在nfc标记上时,应用程序不会弹出并显示通知

如果知道我是否可以将它们分开,以便在应用程序关闭时显示通知,也会很有用,但是如果它正在运行,它应该在

编辑:

好吧,我找到了一个方法来做这一切。我这样做的方式是有另一个活动,将听取Ndef发现。现在,为了让应用程序打开新的活动,我必须添加一个带有自定义mime类型TNF_mime_媒体的记录,并在我的应用程序包中添加mime类型。我还需要一个应用程序记录作为NFC标记中的最后一个记录

现在,应用程序将启动我创建的新活动。 在这个活动的onCreate方法中,我只是创建了通知,然后运行finish

我以前没有这样做,因为我认为这样做会显示活动,显示通知,然后立即关闭它,关闭以前打开的任何应用程序。 但事实并非如此,因此它工作得非常完美


有人能告诉我这是解决问题的好方法还是坏方法。

如果启用了前台调度,则前台有一个活动,不需要通知。只需更新现有活动的UI。对不起,可能我的措辞不正确。当我把手机放在nfc标签上并关闭活动时,我想用肉毒杆菌来代替活动。通常情况下,活动会得到目的并打开它,但我需要它保持关闭状态,只显示通知。前台调度系统和标签意图调度系统。这两个系统都需要一个活动来捕获标签,所以我认为这是解决问题的好方法。据我所知,没有后台服务来捕获标签。注意,这在HCE中是可能的。