Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void installPackage(Context context, InputStream inputStream)
- throws IOException {
- PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
- int sessionId = packageInstaller.createSession(new PackageInstaller
- .SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL));
- PackageInstaller.Session session = packageInstaller.openSession(sessionId);
- try (OutputStream out = session.openWrite("app_update_session", 0, 0)) {
- byte[] buffer = new byte[65536];
- int c;
- while ((c = inputStream.read(buffer)) != -1) {
- out.write(buffer, 0, c);
- }
- session.fsync(out);
- inputStream.close();
- }
- Log.d(TAG, "New app version installed - restarting...");
- session.commit(createIntentSender(context, sessionId));
- }
- private IntentSender createIntentSender(Context context, int sessionId) {
- PendingIntent pendingIntent = PendingIntent.getBroadcast(
- context,
- sessionId,
- new Intent(Intent.ACTION_MY_PACKAGE_REPLACED).putExtra("updated_from_server", true),
- 0);
- return pendingIntent.getIntentSender();
- }
Advertisement
Add Comment
Please, Sign In to add comment