2013-07-04 26 views
0

我创建了一个具有两个活动(Activity1和Activity2)的Android应用程序,我需要以两种方式打开该应用程序。Android-如何以编程方式检查意图过滤器的类型?

方法1:通过NFC卡

通过这种方式,我需要打开活动1。即,如果我刷卡,我需要打开Activity1。

方式二:按图标

通过这种方式,我需要打开活动2 .IE,如果用户点击活性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> 
    ....................... 
    ....................... 
    ....................... 

在活动1我只是想通过

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

你可以看一下其他地方的块我设置的意图,要获得类型转到Activity2,但我需要直接转到Activity2而不进入Activity1。

如何实现这一目标?请帮助

回答

1

如果用户点击启动器中的图标选择打开的活动由LAUNCHER类别决定。因此,如果你定义在清单中的第二个活动和移动这些线条给它,即从Activity1删除它,然后把它添加到Activity2应该工作:那么,对于用户调用您的应用程序

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

Activity2被触发,但其他意图仍然会触发Activity1

参考文献:

+0

谢谢您的回答:)它现在的工作:) –

相关问题