Android 按意图筛选器类别筛选服务
我通过在AOSP上编写一个启动器来学习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
意图过滤器中有特定的类别
我目前的做法是
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类型)。明白了,我将查找一种正确的方法来定义服务。谢谢你的澄清