我正在尝试配置我的 list 文件以指示我的应用程序可以打开 PDF 文件。下面的配置有效,但它给模拟器带来了一些有趣的行为:
- 出现“查看”操作时,我的应用程序未在安装时启动(当我从 Eclipse 运行时,应用程序安装在模拟器上,但它不会自动启动)。
- 当
application/pdf
存在时,从 eclipse 运行后,该应用程序不会显示在我的模拟器的应用程序菜单中。
(如果我的唯一 Intent 是“主要”和“启动器”,我看不到这些问题中的任何一个)
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/pdf" />
</intent-filter>
编辑:好的,我对 Intent 有点困惑。解决我上述问题的方法是使用 2 个不同的 intent-filters,如下所示。
但是,我还有第二个问题。 Android 成功启动了我的 PDF 文件应用程序,但是当它启动时 onCreate(bundle)
被调用而不是 startActivity(Intent)
。我应该如何获取 Intent 数据?
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/pdf" />
</intent-filter>
最佳答案
在您的 Activity 中,您可以使用 getIntent()
获取用于启动它的 Intent。
关于Android:正确的 Intent 过滤器指示我的应用程序可以打开文件类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5019373/