Điều này có thể từ Android 6.0 trở lên.
- Đặt ứng dụng của bạn làm Chủ sở hữu thiết bị.
Sau khi ứng dụng của bạn nhận được quyền của chủ sở hữu Thiết bị, chúng tôi có thể cài đặt, gỡ cài đặt và cập nhật âm thầm mà không cần bất kỳ sự can thiệp nào của người dùng.
public static boolean installPackage(Context context, InputStream in, String packageName)
throws IOException {
PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
PackageInstaller.SessionParams.MODE_FULL_INSTALL);
params.setAppPackageName(packageName);
// set params
int sessionId = packageInstaller.createSession(params);
PackageInstaller.Session session = packageInstaller.openSession(sessionId);
OutputStream out = session.openWrite("COSU", 0, -1);
byte[] buffer = new byte[65536];
int c;
while ((c = in.read(buffer)) != -1) {
out.write(buffer, 0, c);
}
session.fsync(out);
in.close();
out.close();
session.commit(createIntentSender(context, sessionId));
return true;
}
private static IntentSender createIntentSender(Context context, int sessionId) {
PendingIntent pendingIntent = PendingIntent.getBroadcast(
context,
sessionId,
new Intent(ACTION_INSTALL_COMPLETE),
0);
return pendingIntent.getIntentSender();
}
Uninstall:
String appPackage = "com.your.app.package";
Intent intent = new Intent(getActivity(), getActivity().getClass());
PendingIntent sender = PendingIntent.getActivity(getActivity(), 0, intent, 0);
PackageInstaller mPackageInstaller = getActivity().getPackageManager().getPackageInstaller();
mPackageInstaller.uninstall(appPackage, sender.getIntentSender());
Hoàn thành chủ sở hữu thiết bị ứng dụng demo trong repo này.
bản sao có thể có của [Cách cài đặt/cập nhật/xóa APK bằng cách sử dụng lớp "PackageInstaller" trong Android L?] (Http://stackoverflow.com/questions/26884956/how-to-install-update-remove-apk- using-packageinstaller-class-in-android-l) – Kenneth
Như @Kenneth đề cập, có vẻ như [answer] (http://stackoverflow.com/a/27520814/2050) cung cấp mã mẫu tìm kiếm. –