NFC正在启动应用程序,但目的是“ action.MAIN”而不是“ action.NDEF_DISCOVERED”

时间:2019-06-10 21:38:28

标签: android android-intent nfc

我可以使用NFC标签启动我的应用。在我从活动中的标签读取数据之前,请确保意图操作来自NFC。

但是,当我登录intent.getAction()时,它总是等于android.intent.action.MAIN,而不是预期的android.nfc.action.NDEF_DISCOVERED

我正在清单中使用以下代码:

<activity
            android:name=".SplashscreenActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.SplashScreen">

            <intent-filter>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="text/plain" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent->
</activity>

并像这样确定SplashscreenActivity中意图的起源:

public class SplashscreenActivity extends Activity {

     ...

    @Override
    protected void onCreate(final Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splashscreen);

        final Intent intent = getIntent();
        Log.w("NFC", "Intent is: " + intent.getAction());
     ...
}

我已经亲自配置了NFC芯片,并且知道它包含应用程序包名称,文本/纯文本值和URI。我已经使用NFC阅读器对此进行了验证。

0 个答案:

没有答案