【问题标题】:Android: proper intent-filter to indicate my application can open a filetype?Android:正确的意图过滤器表明我的应用程序可以打开文件类型?
【发布时间】:2011-02-16 16:47:20
【问题描述】:

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

  1. 当“查看”操作存在时,我的应用程序在安装时不会启动(当我从 Eclipse 运行时,应用程序会安装在模拟器上,但它不会自动启动)。
  2. application/pdf 存在时,从eclipse 运行后,应用程序不会出现在我的模拟器的应用程序菜单中。

(如果我的唯一意图是“主要”和“启动器”,我看不到这两个问题)

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

编辑:好的,我对意图有点困惑。我上述问题的解决方案是使用 2 个不同的意图过滤器,如下所示。

不过,我还有第二个问题。 Android 成功启动了我的 PDF 文件应用程序,但是当它启动时调用 onCreate(bundle) 而不是 startActivity(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>

【问题讨论】:

    标签: android android-manifest android-intent


    【解决方案1】:

    在您的 Activity 中,您可以使用 getIntent() 来获取用于启动它的意图。

    【讨论】:

      【解决方案2】:

      startIntent() 不是回调。它是调用以启动另一个意图的方法。

      当你的 Activity 启动时,你会得到你的 onStart()(和之前的 onCreate),然后你会从那里调用 getIntent() 来回复

      【讨论】:

        猜你喜欢
        • 2013-10-03
        • 1970-01-01
        • 2012-01-07
        • 1970-01-01
        • 2011-05-08
        • 2012-09-07
        • 1970-01-01
        • 1970-01-01
        • 2013-11-20
        相关资源
        最近更新 更多