【问题标题】:android - How to programmatically read manifest intents?android - 如何以编程方式读取清单意图?
【发布时间】:2013-01-18 08:41:59
【问题描述】:

我正在尝试编写一段可跨多个应用程序运行的代码。不过,我不知道如何从 Java 中读取它。是否可以不手动解析清单?我想用几行代码把scheme1和scheme2弄出来。

<activity android:name="urlHandlingBlah">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"></action>
        <category android:name="android.intent.category.DEFAULT"></category>
        <category android:name="android.intent.category.BROWSABLE"></category>
        <data android:scheme="scheme1"></data>
        <data android:scheme="scheme2"></data>
    </intent-filter>
</activity>

编辑:我的意思是我将如何使用 PackageManager 来获取此信息。我本身并不关心实际的 XML。

【问题讨论】:

标签: java android android-intent manifest


【解决方案1】:

不,这是不可能的,因为一旦创建了您的应用,所有内容都会转换为 APK,并且该清单在运行时不再可读。不过,您可以阅读这些与 PackageManager 交互的属性。

【讨论】:

  • 要使用 PackageManager 执行此操作,您会...?抱歉,这就是我试图解决的问题。
  • 其实不行,从包管理器中获取不到intent filter信息。但是,从前向锁定的弃用直到 Jellybean,您可以通过读取 .apk 并解码它们的清单来获得它,但从 Jellybean 的其他应用程序的 apk 可能不再可读。
  • 感谢您的回复。我只想从 my 应用程序中阅读此内容,最好是从 SDK 的所有版本中阅读。这可能吗?
  • @xtravar,我仍然不明白你为什么需要这些信息来“制作一段可以跨多个应用程序运行的代码”?另外,你不是将这些方案写入这些清单的人吗?难道你不能把这些方案变成字符串资源,然后把它们插入你的清单吗?
猜你喜欢
  • 2017-03-23
  • 2011-12-27
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多