1: 由Package Name获取其package的环境变量
根据此变量可以获取相应package的resource
Context authContext = createPackageContext(desc.packageName, 0);
icon = authContext.getResources().getDrawable(desc.iconId);
label = authContext.getResources().getText(desc.labelId);
2: 根据APK URI 获取APP 信息
/*
* Utility method to get application information for a given packageURI
*/
public static ApplicationInfo getApplicationInfo(Uri packageURI) {
final String archiveFilePath = packageURI.getPath();
PackageParser packageParser = new PackageParser(archiveFilePath);
File sourceFile = new File(archiveFilePath);
DisplayMetrics metrics = new DisplayMetrics();
metrics.setToDefaults();
PackageParser.Package pkg = packageParser.parsePackage(sourceFile, archiveFilePath, metrics, 0);
if (pkg == null) {
return null;
}
return pkg.applicationInfo;
apk时候已经安装
public static boolean isPackageAlreadyInstalled(Activity context, String pkgName) {
List<PackageInfo> installedList = context.getPackageManager().getInstalledPackages(
PackageManager.GET_UNINSTALLED_PACKAGES);
int installedListSize = installedList.size();
for(int i = 0; i < installedListSize; i++) {
PackageInfo tmp = installedList.get(i);
if(pkgName.equalsIgnoreCase(tmp.packageName)) {
return true;
}
}
return false;
}
获取app icon 和 name
public static View initSnippetForInstalledApp(Activity pContext,
ApplicationInfo appInfo, int snippetId) {
View appSnippet = pContext.findViewById(snippetId);
String pkgName = appInfo.packageName;
PackageManager pm = pContext.getPackageManager();
CharSequence label = appInfo.loadLabel(pm);
Drawable icon = appInfo.loadIcon(pm);
((ImageView)appSnippet.findViewById(R.id.app_icon)).setImageDrawable(icon);
((TextView)appSnippet.findViewById(R.id.app_name)).setText(label);
return appSnippet;
}
安装APP 代码
PackageManager pm = getPackageManager();
installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
String installerPackageName = getIntent().getStringExtra(
Intent.EXTRA_INSTALLER_PACKAGE_NAME);
PackageInstallObserver observer = new PackageInstallObserver();
pm.installPackage(mPackageURI, observer, installFlags, installerPackageName);
class PackageInstallObserver extends IPackageInstallObserver.Stub {
public void packageInstalled(String packageName, int returnCode) {
}
}
卸载App
PackageDeleteObserver observer = new PackageDeleteObserver();
getPackageManager().deletePackage(mAppInfo.packageName, observer, 0);
class PackageDeleteObserver extends IPackageDeleteObserver.Stub {
public void packageDeleted(boolean succeeded) {
Message msg = mHandler.obtainMessage(UNINSTALL_COMPLETE);
msg.arg1 = succeeded?SUCCEEDED:FAILED;
mHandler.sendMessage(msg);
}
}
分享到:
相关推荐
我从 dotnet core 1 的版本到 3.1 的版本,中间安装了超级多的预览版,此时我的硬盘已经空间不够了。干的漂亮的 dotnet 提供了 .NET Core 卸载工具专门用来卸载 .NET Core 的 SDK 和运行时
Total-Uninstall-Setup-6.23.0绝对真实可靠,操作过程完全联网,使用时没有出现反弹,而且这是目前在网上所见到的Total-Uninstall的最新破解版本的一款
完美卸载软件,解决Ansys等软件卸载不干净的问题
某些软件卸载之后不能把有效的注册表进行删除,再重新安装时之前的数据和配置还存在,使用这个软件完全卸载软件,不留任何残余
MicrosoftProgram_Install_and_Uninstall.metaMicrosoftProgram_Install_and_Uninstall.metaMicrosoftProgram_Install_and_Uninstall.metaMicrosoftProgram_Install_and_Uninstall.metaMicrosoftProgram_Install_and...
Total-Uninstall-Setup-7.3.1.exe
Uninstall-DreamScene.rar 会用就下
Total-Uninstall-Setup-6.22.1.505-破解版,强力软件卸载工具,深度清除卸载残留
Uninstall-AppServ2.5.9.exe
Android Sunflower (alpha) A gardening app illustrating Android development best practices with Android Jetpack. ...case, please uninstall and re-install the app. Introduction Android Jetpack is a set o
公司包装经理作者:Daan van den Bergh 版权::copyright:2020 Daan van den Bergh版权所有安装打开终端并执行以下命令来安装package-manager。... --uninstall package-name : Uninstall a package.
名称App :: pmuninstall-卸载模块描述App :: pmuninstall是快速的模块卸载程序。 从.packlist删除文件。 和具有很高的亲和力。概要卸载MODULE $ pm-uninstall App::pmuninstall选项-f,--force 卸载时无提示 $ pm-...
miui10稳定版刷入xposed框架成功卡米,慌慌忙忙找了个遍,总算找到卸载包了,当做个备份吧,下载好进recovery模式刷入即可
命令:pip uninstall packagename pip -i 和 -U 参数 例子: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U funcat -i: 指定库的安装源 -U:升级 原来已经安装的包,不带U不会装新版本,带上U才会...
App Uninstaller is an Android program uninstall tool and tool application. ① Provides the function of uninstalling applications to help remove junk programs on the phone; ② Use intelligent direct ...
android-uninstall-feedback 当Android的APP被卸载的时候打开浏览器或者发送一个其他的Action来进行反馈
默认情况,您直接可以直接运行vs2010-uninstall-utility.exe,但这样只会卸载Visual Studio 2010版本支持的默认组件,不会卸载以前的产品版本(例如:Visual Studio 2008)或框架本身(例如:Microsoft.NET Framework ...
An Android clock Setting CoolClock->Touch in screen(Or click menu)->Setting Trigger Screen Slide over to turn screen on and off is via proximity sensor(It's near by earpiece), but you need ...
Uninstall_Statistics 统计 应用 自身被 卸载 Android statistics application is uninstalled 参考自这篇blog http://www.cnblogs.com/zealotrouge/p/3157126.html ...
autodesk genuine service卸载工具,这是一款实用的ags强制卸载工具,主要针对Autodesk公司旗下产品autodesk genuine service无法清除问题而开发的,使用它用户可以轻松的强制卸载,支持Autodesk 2021所有版本