Android 获取手机已安装的应用列表(适配)

这篇具有很好参考价值的文章主要介绍了Android 获取手机已安装的应用列表(适配)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

权限

<uses-permission
        android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:ignore="QueryAllPackagesPermission" />

加上权限才能获取到所有的应用

获取代码

public static boolean hasApplication(Context context, String packageName) {
        PackageManager packageManager = context.getPackageManager();
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            Intent intent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER);
            List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
            for (int i = 0,count=list.size(); i <count ; i++) {
                if(list.get(i).activityInfo.applicationInfo.packageName.equalsIgnoreCase(packageName)) {
                    return true;
                }
            }
        }else{
        //packageManager.queryIntentActivities(intent,0)
            //获取系统中安装的应用包的信息
            List<PackageInfo> listPackageInfo = packageManager.getInstalledPackages(0);
            for (int i = 0; i < listPackageInfo.size(); i++) {
                if (listPackageInfo.get(i).packageName.equalsIgnoreCase(packageName)) {
                    return true;
                }
            }
        }


        return false;


    }

低版本的手机 可以用else里边的方法 也可以用

Intent intent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER);
packageManager.queryIntentActivities(intent,0)

Intent的action 是:Intent.ACTION_MAIN 这个不要传错。

通过包名获取对应应用的启动页的全类名

/**
     * 获取APP的启动类
     * @param context
     * @param packageName
     * @return
     */
    String getAppStartClass(Context context, String packageName) {
        PackageManager packageManager = context.getPackageManager();
        try {
            Intent intent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER);
            List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.GET_ACTIVITIES);
            for (int i = 0,count=list.size(); i <count ; i++) {
                if (TextUtils.equals(list.get(i).activityInfo.packageName, packageName)) {
                    return list.get(i).activityInfo.name;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            return "";
        }
    }

水平有限,如有问题欢迎评论区留言指正。

如果在高版本上有问题的话建议将targetSdkVersion设置成26试试。

关注我获取更多知识或者投稿

android 获取已安装应用,android,java,开发语言文章来源地址https://www.toymoban.com/news/detail-547934.html

到了这里,关于Android 获取手机已安装的应用列表(适配)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手机(Android)刷NetHunter安装指南,无需ssh执行kali命令, NetHunter支持的无线网卡列表!

    前提: 确保手机已经root,已装上magisk 。如果没有root,可用尝试magisk root 后执行此文 1、下载Nethunter:Get Kali | Kali Linux  然后push 到sdcard 里, 2、打开magisk,选择刚刚下好的 Nethunter  ZIP包  刷入 3、刷完重启手机,打开 桌面的NetHunter app,打开菜单,选择“Kali Chroot Manager”,

    2024年01月25日
    浏览(54)
  • Android 适配手机和平板

    一、屏幕适配限定符 Android 系统加载应用资源时 , 会根据当前运行应用的设备的相关属性 , 如 : 屏幕尺寸 / 屏幕像素密度 / 宽高比 / 屏幕方向 等属性 , 加载不同的屏幕适配限定符目录下的资源 ; 如 : 横竖屏切换时 , res/layout-land 目录中 , 存放的是横屏布局 , res/layout-port 目录中

    2024年02月05日
    浏览(61)
  • 【Android笔记98】Android小案例之APP应用程序管理(获取已安装应用、卸载应用)

    这篇文章,主要介绍Android小案例之APP应用程序管理(获取已安装应用、卸载应用)。 目录 一、应用管理APP小案例 1.1、运行效果 1.2、使用技术 1.3、案例代码

    2024年02月02日
    浏览(55)
  • Android 手机屏幕适配方式和原理

    其适配原理主要是根据dp/sp与px的转换,而dp/sp与px的转换又与DisplayMetrics的density相关,所以可以通过改变DisplayMetrics的density,scaledDensity和densityDpi的值来适配不同分辨率机型。 在开始分析之前,我们需要了解一些概念,如: DisplayMetrics:是Android屏幕显示的信息描述,如尺寸

    2024年02月04日
    浏览(39)
  • Android 屏幕适配各种宽高比的手机

    由于android 手机的屏幕宽高比样式太多了,在设计UI时,很多时候,会因为宽高比,分辨率不同会有展示上的差异。 我是这样解决的 在activity的onCreate方法前,调用:   这样就适配了

    2024年02月15日
    浏览(45)
  • Android 系统中适配OAID获取

    OAID(Open Anonymous Identification)是一种匿名身份识别标识符, 用于在移动设备上进行广告追踪和个性化广告投放。它是由中国移动通信集 团、中国电信集团和中国联通集团共同推出的一项行业标准 OAID值为一个64位的数字 在Android10以上,安卓是禁止我们获取IMEI的,那如果想要

    2024年02月05日
    浏览(45)
  • Android无法获取已安装应用包名的问题

    在某些情况下,我们需要获取android上已安装的第三方应用的一些信息 例如:使用如上代码检索,有些情况下也无法获取应用信息,而有些机型又可以获取到应用信息 从Android 11 开始 系统对app的可见性进行了保护,只有部分应用可见所有app 即使您的应用以 Android 11(API 级别

    2024年02月21日
    浏览(42)
  • adb命令导出手机已安装的android应用apk文件

    前提条件是手机已经和PC电脑可以通过adb建立连接。 (1)通过adb shell命令获取当前手机所有已经安装的应用包名:   (2)根据上面打印出来的包名,找到想要导出apk文件的应用包名,这个包名可以通过多种方式找到,也可以用一些工具找,假设已经知道某个应用的包名后,

    2024年02月16日
    浏览(64)
  • Android打开系统文件管理器,并获取选中文件的路径,适配Android10及以上无法获取路径

    1.进入文件管理器 2.在onActivityResult中获取返回结果 3.FileHelper完整工具类

    2024年02月02日
    浏览(62)
  • Android 12 Wifi 开发(获取列表、连接、断开连接)

    获取Wifi列表: 扫描(这个方法早在Android 9.0 就被弃用), 不过如果不调用的话是没法及时获取Wifi列表的广播的。 (不需要也能正常获取,没有延迟,经实验毫无区别) 创建广播并接收: 配置并连接( 无系统签名 ): 配置并连接( 有系统签名 ): 断开连接(无系统签名

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包