【问题标题】:Android- How to check the type of Intent Filters Programmatically?Android-如何以编程方式检查意图过滤器的类型?
【发布时间】:2013-07-04 12:03:10
【问题描述】:

我正在创建一个包含两个活动(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.
 }

你可以看看 else 块,我设置了一个 Intent 去 Activity2。但是我需要直接去 Activity2 而不进入 Activity1。

如何实现?请帮忙

【问题讨论】:

    标签: java android xml android-intent nfc


    【解决方案1】:

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

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

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

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-03
      • 2012-12-18
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      相关资源
      最近更新 更多