仅在NFC调用时启动活动

时间:2013-10-26 12:44:23

标签: android android-activity nfc

我有活动A,即MAIN和活动B,这是我用于应用程序的另一个活动。现在,我只想在NFC标签调用时执行应用程序B.

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

如果我使用NFC,我希望主应用程序将是活动B(我重申,只有当我使用NFC运行应用程序时)。有什么办法吗?

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

1 个答案:

答案 0 :(得分:1)

只需在您的manifest.xml

上设置要在NFC上运行的活动的intent-filter
    <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>

在上面的示例中,activty A从Launcher运行,来自NFC的激活B.

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

@Override
public void onResume() {
    super.onResume();
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
        //Your initialization goes here
    }
}