0

我的活动 A 是主要活动,活动 B 是我用于应用程序的另一个活动。现在,我只想在被 NFC 标签调用的情况下执行应用程序 B。

我写了一个运行应用程序 com.test.nfc)" 的 NFC 标签(这是我的测试应用程序的包)。它可以工作,但它当然会运行 MAIN(活动 A),这不是我想要的。

如果我使用 NFC,我希望主应用程序是 Activity B(我重复一遍,仅当我使用 NFC 运行应用程序时)。有什么办法吗?

我尝试使用 PlayStore 中的 Tasker 应用程序启动该活动,但它仅在安装此应用程序时才有效,如果我卸载它,它就不再工作了。

4

1 回答 1

1

只需为要在 NFC 上运行的活动设置意图过滤器,然后在 manifest.xml 上运行

    <activity
        android:name="com.activity.a"
        android:label="@string/app_name"

        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.activity.b"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data
                android:host="ext"
                android:pathPrefix="/com.example:ddcnfc"
                android:scheme="vnd.android.nfc" />
        </intent-filter>
    </activity>

在上面的示例中,活动 A 从 Launcher 运行,活动 B 从 NFC 运行。

然后在activty B类的onResume函数中,

@Override
public void onResume() {
    super.onResume();
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
        //Your initialization goes here
    }
}
于 2013-10-26T12:52:22.960 回答