Android:正确的 Intent 过滤器指示我的应用程序可以打开文件类型?

标签 android android-manifest android-intent

我正在尝试配置我的 list 文件以指示我的应用程序可以打开 PDF 文件。下面的配置有效,但它给模拟器带来了一些有趣的行为:

  1. 出现“查看”操作时,我的应用程序未在安装时启动(当我从 Eclipse 运行时,应用程序安装在模拟器上,但它不会自动启动)。
  2. 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/

相关文章:

android - android :name mean? 中的前导点是什么

java - Android: Intent 和组件之间交换数据

android - 按下搜索按钮时未触发 onCreate() 或 onNewIntent()

java - ListView Intent On Item Click Listener 停止应用程序错误

android - 触摸视频 View 时进行 Activity

android - 基于文件类型的应用程序选择对话框

Android 将代码分成包

Android:在通话期间检测当前 Activity 的电话号码

android - FirebaseCrashlytics.getInstance() 在多进程应用程序中崩溃应用程序

android - 为什么包含 Google Play 服务库时权限会自动添加到我的 AndroidManifest