找出设备中指定的所有应用的方法

在Android的开发过程中,有时候可能需要找出设备中所有的指定的某一类应用,如有的可以换皮肤的应用,我们需要在皮肤的商店里找出本地所下载的所有的皮肤,每个皮肤都是一个APP,本篇博客讲讨论如何找出设别中指定的某一类所有的App


要找出指定的App,首先我们要在写这个App的时候给它添加一个识别的标记,这里可以在该App的任意一个Activity中添加一个自定义的Action,如:

<activity
    android:name=".MainActivity">
    <intent-filter>
        <action android:name="myAction"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>


这里的myAction作为识别的标记,这里还需要添加一个DEFAULT的category


然后在需要找个该类App的地方:

List<String> packageNames = new ArrayList<>();
PackageManager packageManager = context.getPackageManager();
Intent intent = new Intent("myAction").addCategory(Intent.CATEGORY_DEFAULT);
List<ResolveInfo> resolveApps = packageManager.queryIntentActivities(intent, PackageManager.GET_ACTIVITIES);
for (ResolveInfo resolveInfo : resolveApps) {
    String packageName = resolveInfo.activityInfo.packageName;
    packageNames.add(packageName);
}



这里得到的packageName就是应用的包名,packageNames里就包含了所有添加了myAction的App的包名









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值