如何获取应用程序的所有意图过滤器(使用root)

And*_* T. 5 android android-intent

我正在研究系统应用程序,我需要以编程方式了解应用程序能够处理的意图.我已经看到了与此相关的其他问题,但它们似乎都没有答案,但似乎也没有关注系统权限.

PackageManager似乎只提供查询给定intent的活动的方法.我无法找到一种方法来获取给定活动的意图.

例如,如果我有一个具有如此定义的intent过滤器的活动:

<intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED"/>
    <action android:name="android.intent.action.USER_PRESENT"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

我知道活动类名和包名,我想从包管理器(或任何其他来源)中找出它可以处理的意图(在这种情况下,BOOT_COMPLETEDUSER_PRESENT).

VJ *_*ons 4

好问题。我认为不可能找出应用程序可以处理的意图。http://developer.android.com/reference/android/content/Intent.html列出了一些标准活动操作和广播操作。如果您正在编写自己的应用程序,该应用程序有自己的意图过滤器,那么我认为其他应用程序不会知道您的应用程序可以处理哪些意图,因为我相信没有办法发布它们或向全世界宣布它们。

但可能的是,您可以调用特定意图,如果返回 null,那么您可以确定设备上没有可以处理该特定意图的应用程序。

HTH。