Android获取手机应用信息

简介: 通过应用名获取包名/** * 通过应用名获取包名 * * @param name 应用名 * @return 包名 */public static String getPack...

通过应用名获取包名

/**
 * 通过应用名获取包名
 *
 * @param name 应用名
 * @return 包名
 */
public static String getPackageNameByAppName(Context context, @NonNull String name) {
    try {
        if (TextUtils.isEmpty(name)) {
            return null;
        }
        // 获取到包的管理者
        PackageManager packageManager = context.getPackageManager();
        // 获取所有的安装程序
        List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
        // 遍历获取到每个应用程序的信息
        for (PackageInfo packageInfo : installedPackages) {
            // 获取程序名
            String appName = packageInfo.applicationInfo.loadLabel(packageManager).toString();
            if (name.equals(appName)) {
                return packageInfo.packageName;
            }
        }
        return null;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

获取手机中的所有应用的信息

/**
 * 获取手机中的所有应用的信息
 * @param context context
 */
public void getInstalledApplications(Context context) {
    // 获取到包的管理者
    PackageManager packageManager = context.getPackageManager();
    // 获取所有的安装程序
    List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
    // 遍历获取到每个应用程序的信息
    for (PackageInfo packageInfo : installedPackages) {
        // 获取到程序的包名
        String packageName = packageInfo.packageName;
        // 获取到版本号
        String versionName = packageInfo.versionName;

        ApplicationInfo applicationInfo = packageInfo.applicationInfo;
        // 获取程序名
        String appName = applicationInfo.loadLabel(packageManager).toString();
        // 获取到程序图标
        Drawable icon = applicationInfo.loadIcon(packageManager);

        // 获取程序的所有标签 用来获取 以下信息
        int flags = applicationInfo.flags;
        // 判断是不是用户程序
        if ((flags & ApplicationInfo.FLAG_SYSTEM) == ApplicationInfo.FLAG_SYSTEM) {
            // 系统程序
        } else {
            // 用户程序
        }
        // 判断是不是安装在哪
        if ((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == ApplicationInfo.FLAG_EXTERNAL_STORAGE) {
            // 内存卡
        } else {
            // 手机内存
        }
    }
}

启动App

/**
 * 启动app
 *
 * @param context        context
 * @param appPackageName 应用包名
 */
public static void startAPP(Context context, String appPackageName) {
    try {
        Intent intent = context.getPackageManager().getLaunchIntentForPackage(appPackageName);
        context.startActivity(intent);
    } catch (Exception e) {
        ToastUtil.showDebugToast(context, "没有安装");
    }
}
相关文章
|
8天前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
45 2
|
3天前
|
XML 存储 数据库
如何使用Android Studio创建一个基本的音乐播放器应用
如何使用Android Studio创建一个基本的音乐播放器应用
11 0
|
7天前
|
数据安全/隐私保护 SEO
蚂蚁分类信息系统二开仿么么街货源客模板微商货源网源码(带手机版)
网站采用蚂蚁分类信息系统二次开发,模板仿么么街货源客模板,微商货源网定制版。 模板设计风格简洁,分类信息采用列表形式发布,这种设计方式非常符合度娘 SEO 规则。收录效果是杠杠的。 这个网站风格目前是用来做货源推广使用的,但不仅限于货源网站。后台无加密,分类目录随意修改。 无论你是想做地方分类信息,二手市场,或者垂直行业信息分类平台都是不错的选择。
11 2
蚂蚁分类信息系统二开仿么么街货源客模板微商货源网源码(带手机版)
|
3天前
|
XML BI 数据库
一个基于Android Studio的简易记事本应用
一个基于Android Studio的简易记事本应用
8 0
|
7天前
|
前端开发 测试技术 API
探索安卓应用的架构演进:从MVC到MVVM
本篇文章将深入探讨安卓应用开发中的架构演进,特别关注从传统的MVC(Model-View-Controller)到现代流行的MVVM(Model-View-ViewModel)架构的转变。通过对比两种架构的设计理念、实现方式和实际应用案例,解析MVVM在提高代码可维护性和可测试性方面的优势。
12 0
|
7天前
|
前端开发 JavaScript Android开发
手机APP开发|基于安卓APP实现掌上党支部——党员app
手机APP开发|基于安卓APP实现掌上党支部——党员app
|
8天前
|
PHP
PHP地方门户分类信息网站源码讯客分类信息系统源码(含手机版)
1.上传程序到网站根目录,访问http://域名/install/index.php 进行安装,不要直接打开网址,先直接安装; 2.安装完成后 后台恢复数据即可 默认帐号密码都是admin http://域名/admin/ 3.不要删除任何文件,因为删除文件或者修改代码可能造成错误
8 0
|
8天前
|
JSON Android开发 C++
Android c++ core guideline checker 应用
Android c++ core guideline checker 应用
|
9天前
|
Android开发 Kotlin
kotlin开发安卓应用 如何修改app安装后的名称
在 Android 应用中,要修改安装后的显示名称,需更新 AndroidManifest.xml 文件中 application 标签的 android:label 属性。可直接在该属性内设置新名称,或在 res/values/strings.xml 文件中修改 app_name 并在 manifest 中引用。推荐使用 strings.xml 方式,以便支持多语言和集中管理。
|
15天前
|
XML Java Android开发
Android应用中如何保护JAVA代码
Android应用中如何保护JAVA代码
8 0