Android获取手机应用信息
2016-04-21 11:01
543 查看
通过应用名获取包名
/** * 通过应用名获取包名 * * @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, "没有安装"); } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories