一,安装应用,代码如下
public static Intent getInstallAppIntent(File file) {
if (file == null) return null;
Intent intent = new Intent(Intent.ACTION_VIEW);
String type;
if (Build.VERSION.SDK_INT < 23) {
type = "application/vnd.android.package-archive";
} else {
type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(FileUtils.getFileExtension(file));
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri contentUri = FileProvider.getUriForFile(Utils.getContext(), "com.your.package.fileProvider", file);
intent.setDataAndType(contentUri, type);
}
intent.setDataAndType(Uri.fromFile(file), type);
return intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
或者根据路径获取(需要用到上面的函数):
public static Intent getInstallAppIntent(String filePath) {
return getInstallAppIntent(FileUtils.getFileByPath(filePath));
}
二,卸载应用(需要提前知道应用包名)
public static Intent getUninstallAppIntent(String packageName) {
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(Uri.parse("package:" + packageName));
return intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}