我正在创建具有两个Activity(Activity1和Activity2)的android应用程序,我需要通过两种方式打开该应用程序。
方式1:使用NFC卡
这样,我需要打开Activity1。即,如果我刷卡,则需要打开Activity1。
方式2:通过图标
这样,我需要打开“活动2”。即,如果用户单击图标,则必须打开“活动2”。
我的AndroidManifest.xml如下所示,
...............
...............
...............
<activity
android:name=".Activity1"
android:screenOrientation="portrait"
android:label="@string/app_name"
>
<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" />
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
.......................
.......................
.......................
在Activity1中,我只是尝试通过
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction()))
{
// Here I'm dealing with Activity1.
}
else
{
// Here I've set an Intent to go to Activity2.
}
您可以在else块中设置我要进入Activity2的意图。但是我需要直接进入Activity2,而不必进入Activity1。
如何实现呢?请帮忙
最佳答案
如果用户单击启动器中的图标,则选择要打开的活动由LAUNCHER
类别确定。因此,如果您在清单中定义了第二个活动并将这些行移到它,即从Activity1
删除它并将其添加到Activity2
,它应该起作用:
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.MAIN" />
然后,无论何时用户调用您的应用程序,都会触发
Activity2
,但其他意图仍会触发Activity1
。参考文献:
Intents and Filters
关于java - Android-如何以编程方式检查 Intent 过滤器的类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17469815/