0

我正在创建一个带有两个活动(Activity1 和 Activity2)的 android 应用程序,我需要以两种方式打开应用程序。

方式一:NFC卡

这样,我需要打开Activity1。即,如果我刷卡我需要打开Activity1。

方式 2:按图标

这样,我需要打开Activity 2。即,如果用户单击该图标,则必须打开Activity2。

我的 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.
 }

您可以查看我设置了 Intent 以进入 Activity2 的 else 块。但我需要直接进入 Activity2 而无需进入 Activity1。

如何做到这一点?请帮忙

4

1 回答 1

1

如果用户单击启动器中的图标,则选择打开的活动由LAUNCHER类别决定。因此,如果您在 Manifest 中定义第二个活动并将这些行移至其中,它应该可以工作,即将其删除并将其Activity1添加到Activity2

<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.MAIN" />

然后,每当用户调用您的应用程序时,Activity2都会触发但Activity1仍会由其他意图触发。

参考:

于 2013-07-04T12:13:33.207 回答