public final class PackageUtils
extends java.lang.Object
installNormal(Context, String)installAppSilent(Context, String)install(Context, String)uninstallNormal(Context, String)uninstallSilent(Context, String)uninstall(Context, String)isSystemApplication(Context)isSystemApplication(Context, String)isSystemApplication(PackageManager, String)getInstallLocation() get system install locationstartInstalledAppDetails(Context, String) start
InstalledAppDetails Activity
desc :
author : xuexiang
time : 2018/4/28 上午12:32
| Modifier and Type | Field and Description |
|---|---|
static int |
DELETE_FAILED_DEVICE_POLICY_MANAGER
Uninstall return code
uninstall fail if the system failed to delete the package because it is the active DevicePolicy manager. |
static int |
DELETE_FAILED_INTERNAL_ERROR
Uninstall return code
uninstall fail if the system failed to delete the package for an unspecified reason. |
static int |
DELETE_FAILED_INVALID_PACKAGE
Uninstall return code
uninstall fail if pcakge name is invalid |
static int |
DELETE_FAILED_PERMISSION_DENIED
Uninstall return code
uninstall fail if permission denied |
static int |
DELETE_SUCCEEDED
Uninstall return code
uninstall success. |
static int |
REQUEST_CODE_INSTALL_APP
apk安装的请求码
|
| Modifier and Type | Method and Description |
|---|---|
static boolean |
checkAPP(android.content.Context context,
java.lang.String packageName)
检查某个应用是否安装
|
static int |
getAppVersionCode(android.content.Context context)
get app version code
|
static android.content.Intent |
getInstallAppIntent(android.content.Context context,
java.io.File appFile)
获取安装apk的意图
|
static boolean |
install(android.content.Context context,
java.io.File apkFile)
apk安装
|
static boolean |
install(android.content.Context context,
java.lang.String filePath)
apk安装
|
static void |
installApk(android.content.Context context,
java.lang.String filePath)
使用系统安装apk
|
static boolean |
installAppSilent(android.content.Context context,
java.lang.String filePath)
静默安装 App
|
static boolean |
isSystemApplication(android.content.Context context)
whether context is system application
|
static boolean |
isSystemApplication(android.content.Context context,
java.lang.String packageName)
whether packageName is system application
|
static boolean |
isSystemApplication(android.content.pm.PackageManager packageManager,
java.lang.String packageName)
whether packageName is system application
|
static void |
openApp(android.content.Context context)
打开指定的应用
|
static void |
openApp(android.content.Context context,
android.content.pm.ApplicationInfo appInfo)
打开指定的应用
|
static boolean |
openApp(android.content.Context context,
java.lang.String packageName)
打开指定的应用
|
static void |
startInstalledAppDetails(android.content.Context context,
java.lang.String packageName)
start InstalledAppDetails Activity
|
static boolean |
switchApp(android.content.Context context,
java.lang.String packageName)
切换app,如果app已打开就直接切换回去,不重新打开
|
static int |
uninstall(android.content.Context context,
java.lang.String packageName)
uninstall according conditions
if system application or rooted, see
uninstallSilent(Context, String)
else see uninstallNormal(Context, String)
|
static boolean |
uninstallNormal(android.content.Context context,
java.lang.String packageName)
uninstall package normal by system intent
|
static int |
uninstallSilent(android.content.Context context,
java.lang.String packageName)
uninstall package and clear data of app silent by root
|
static int |
uninstallSilent(android.content.Context context,
java.lang.String packageName,
boolean isKeepData)
uninstall package silent by root
Attentions:
Don't call this on the ui thread, it may costs some times.
You should add android.permission.DELETE_PACKAGES in
manifest, so no need to request root permission, if you are system app.
|
public static final int REQUEST_CODE_INSTALL_APP
public static final int DELETE_SUCCEEDED
public static final int DELETE_FAILED_INTERNAL_ERROR
public static final int DELETE_FAILED_DEVICE_POLICY_MANAGER
public static final int DELETE_FAILED_INVALID_PACKAGE
public static final int DELETE_FAILED_PERMISSION_DENIED
public static boolean install(android.content.Context context,
java.io.File apkFile)
throws java.io.IOException
context - apkFile - apk文件java.io.IOExceptionpublic static boolean install(android.content.Context context,
java.lang.String filePath)
context - filePath - apk文件的路径public static boolean installAppSilent(android.content.Context context,
java.lang.String filePath)
非 root 需添加权限
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
filePath - 文件路径true: 安装成功false: 安装失败public static android.content.Intent getInstallAppIntent(android.content.Context context,
java.io.File appFile)
context - appFile - public static int uninstall(android.content.Context context,
java.lang.String packageName)
uninstallSilent(Context, String)uninstallNormal(Context, String)context - packageName - package name of apppublic static boolean uninstallNormal(android.content.Context context,
java.lang.String packageName)
context - packageName - package name of apppublic static int uninstallSilent(android.content.Context context,
java.lang.String packageName)
context - packageName - package name of appuninstallSilent(Context, String, boolean)public static int uninstallSilent(android.content.Context context,
java.lang.String packageName,
boolean isKeepData)
context - file path of packagepackageName - package name of appisKeepData - whether keep the data and cache directories around after
package removalDELETE_SUCCEEDED means uninstall successDELETE_FAILED_INTERNAL_ERROR means internal errorDELETE_FAILED_INVALID_PACKAGE means package name
errorDELETE_FAILED_PERMISSION_DENIED means permission
deniedpublic static boolean isSystemApplication(android.content.Context context)
context - public static boolean isSystemApplication(android.content.Context context,
java.lang.String packageName)
context - packageName - public static boolean isSystemApplication(android.content.pm.PackageManager packageManager,
java.lang.String packageName)
packageManager - packageName - public static int getAppVersionCode(android.content.Context context)
context - public static void startInstalledAppDetails(android.content.Context context,
java.lang.String packageName)
context - packageName - public static boolean checkAPP(android.content.Context context,
java.lang.String packageName)
context - packageName - 包名public static void installApk(android.content.Context context,
java.lang.String filePath)
filePath - public static void openApp(android.content.Context context)
context - public static void openApp(android.content.Context context,
android.content.pm.ApplicationInfo appInfo)
context - appInfo - public static boolean openApp(android.content.Context context,
java.lang.String packageName)
context - packageName - public static boolean switchApp(android.content.Context context,
java.lang.String packageName)
context - packageName -