(获取应用的包名/应用名等信息)打开、安装和卸载应用
来源:互联网 发布:scp 端口号 编辑:程序博客网 时间:2024/05/22 15:54
实现功能:
从本应用打开另外一个应用。
通过应用名称appName打开另外一个应用:
1、首先获取系统应用或者所有应用的包名/应用名/Activity名称/Icon等信息:
①获取系统应用:
(从应用名称获取系统应用的包名和程序的Activity名)
// 获得所有系统的 public void querySysAppInfo() { PackageManager pm = this.getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN, null); intent.addCategory(Intent.CATEGORY_LAUNCHER); // 通过查询,获得所有ResolveInfo对象. List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); String activityName = ""; String pkgName = ""; String appLabel = ""; for (ResolveInfo reInfo : resolveInfos) { activityName = reInfo.activityInfo.name; // 获得该应用程序的启动Activity的name pkgName = reInfo.activityInfo.packageName; // 获得应用程序的包名 appLabel = (String) reInfo.loadLabel(pm); // 获得应用程序的Label System.out.println("1\\" + appLabel + " activityName---" + activityName + " pkgName---" + pkgName); // Drawable icon = reInfo.loadIcon(pm); // 获得应用程序图标 //此处用equalsIgnoreCase是为了防止应用名称大小写导致包名等找不到 if (appLabel.equalsIgnoreCase(appName)) { System.out.println(appLabel + " activityName---" + activityName + " pkgName---" + pkgName); appPackageName = pkgName; appAcitivityName = activityName; } } }
②获取手机中所有应用:
(从应用名称获取系统应用的包名)
// 全部程序包 private void queryFilterAppInfo() { PackageManager pm = this.getPackageManager(); // 查询所有已经安装的应用程序 List<ApplicationInfo> listAppcations = pm .getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);// GET_UNINSTALLED_PACKAGES代表已删除,但还有安装目录的 String activityName = ""; String pkgName = ""; String appLabel = ""; for (ApplicationInfo app : listAppcations) { pkgName = app.packageName; // 获得应用程序的包名 appLabel = (String) app.loadLabel(pm); // 获得应用程序的Label System.out.println("2、" + appLabel + " activityName---" + activityName + " pkgName---" + pkgName); // Drawable icon = reInfo.loadIcon(pm); // 获得应用程序图标 if (appLabel.equalsIgnoreCase(appName)) { System.out.println(appLabel + " pkgName---" + pkgName); appPackageName = pkgName; } } }
2、从本应用打开另外一个应用
2种方法:
①:需要用到(appPackageName)包名+(appAcitivityName)activity名:
// 前名一个参数是应用程序的包名,后一个是这个应用程序的Activity名 Intent intent = new Intent(); intent.setComponent(new ComponentName(appPackageName, appAcitivityName)); startActivity(intent);
②:需要用到包名(直接启动)
Intent intent = getPackageManager() .getLaunchIntentForPackage(appPackageName); if (intent != null) // 已安装包 直接启动 startActivity(intent);
3、卸载应用:
传入appPackageName包名
Uri uri = Uri.fromParts("package",appPackageName, null); Intent intent = new Intent(Intent.ACTION_DELETE, uri); startActivity(intent);
4、安装应用:
前提是APK已经放在了sdcard根目录下了
//安装程序的apk文件路径 String fileName = Environment.getExternalStorageDirectory() + apkName; //创建URI Uri uri = Uri.fromFile(new File(fileName)); //创建Intent意图 Intent intent = new Intent(Intent.ACTION_VIEW); //设置Uri和类型 intent.setDataAndType(Uri, application/vnd.android.package-archive"); //执行意图进行安装 startActivity(intent);
0 0
- (获取应用的包名/应用名等信息)打开、安装和卸载应用
- 获取手机已安装应用的包名等信息
- Android应用获取包名等信息
- 获取手机第三方应用的信息(名称,包名,版本号,版本名,安装包路径,安装包大小)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) .
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- JSON web token@06#Example Unsecured JWT
- Android学习笔记——Activity之间传递数据
- Spring Batch 之 Sample(固定长格式文件读写)(六)
- 后台返回状态码,js验证跳转登录
- mysql中主外键关系
- (获取应用的包名/应用名等信息)打开、安装和卸载应用
- JSON web token@07#Creating and Validating JWTs
- [Leetcode] Combination Sum
- Spring Batch 之 Sample(复合格式文件的读、多文件的写)(七)
- JSON web token@08#Implementation Requirements
- 小程序之switch...case...break
- rootkit实现劫持系统调用ps、ls
- BLE 之centralManagerDelegate类介绍
- [!] The 'Pods-PUClient' target has frameworks with conflicting names: UMMobClick.