Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按意图筛选器类别筛选服务_Android_Android Source - Fatal编程技术网

Android 按意图筛选器类别筛选服务

Android 按意图筛选器类别筛选服务,android,android-source,Android,Android Source,我通过在AOSP上编写一个启动器来学习android,并研究如何从安装的软件包中获取所有服务,这些软件包的意图过滤器中有特定的类别 我目前的做法是 final PackageManager pm=getPackageManager(); int flags=PackageManager.GET_INTENT_FILTERS | PackageManager.GET_SERVICES; 列表包=pm.getInstalledPackages(标志); 用于(PackageInfo-PackageI

我通过在AOSP上编写一个启动器来学习android,并研究如何从安装的软件包中获取所有服务,这些软件包的
意图过滤器中有特定的
类别

我目前的做法是

final PackageManager pm=getPackageManager();
int flags=PackageManager.GET_INTENT_FILTERS | PackageManager.GET_SERVICES;
列表包=pm.getInstalledPackages(标志);
用于(PackageInfo-PackageInfo:Package){
Log.d(标签,“已安装的软件包:”+packageInfo.packageName);
for(ServiceInfo服务:packageInfo.services){
Log.d(标签“Service:+Service.packageName”);
// ???
}
}
Manifest.xml
中定义的服务示例:

<service
    android:name=".ComplicationIntentService"
    android:exported="true">
    <intent-filter>
        <category android:name="my.intent.CATEGORY" />
    </intent-filter>
</service>

遗憾的是,
ServiceInfo
对象似乎不包含关于意图过滤器的信息,一些搜索似乎暗示这没有实现


如果可能的话,有什么想法吗?

似乎不完整。但是,您可以尝试调用
PackageManager
上的
querytentservices()
,调用的
Intent
应该与
匹配。太好了,我试一试,不完整的
Intent筛选器
是什么意思?隐式
Intent
通常有一个操作字符串。但是,任何带有操作字符串的
意图
都不应与该
匹配。
应该将
意图
与该类别匹配,而不是其他(没有操作,没有
Uri
,没有MIME类型)。明白了,我将查找一种正确的方法来定义服务。谢谢你的澄清