diff options
author | Jeff Sharkey <jsharkey@android.com> | 2014-07-30 16:45:01 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2014-07-31 15:17:03 -0700 |
commit | 1cb2d0d4bba387665128c62c342e59103ea4be26 (patch) | |
tree | 2659fda22f585adf01574c24f1f23dbb3caccef2 /api | |
parent | 874bcd82c223ce58c9d76edcf619b3988c672307 (diff) | |
download | frameworks_base-1cb2d0d4bba387665128c62c342e59103ea4be26.zip frameworks_base-1cb2d0d4bba387665128c62c342e59103ea4be26.tar.gz frameworks_base-1cb2d0d4bba387665128c62c342e59103ea4be26.tar.bz2 |
Persist install sessions, more lifecycle.
To resume install sessions across device boots, persist session
details and read at boot. Drop sessions older than 3 days, since
they're probably buggy installers.
Add session callback lifecycle around open/close to give home apps
details about active installs. Also give them a well-known intent
to show session details.
Extend Session to list staged APKs and open them read-only, giving
installers a mechanism to verify delivered bits, for example using
MessageDigest, before committing.
Switch to generating random session IDs instead of sequential.
Defensively resize app icons if too large. Reject runaway
installers when they have too many active sessions.
Bug: 16514389
Change-Id: I66c2266cb82fc72b1eb980a615566773f4290498
Diffstat (limited to 'api')
-rw-r--r-- | api/current.txt | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/api/current.txt b/api/current.txt index c5027ae..ef3d494 100644 --- a/api/current.txt +++ b/api/current.txt @@ -8515,9 +8515,11 @@ package android.content.pm { method public android.graphics.Bitmap getAppIcon(); method public java.lang.CharSequence getAppLabel(); method public java.lang.String getAppPackageName(); + method public android.content.Intent getDetailsIntent(); method public java.lang.String getInstallerPackageName(); method public float getProgress(); method public int getSessionId(); + method public boolean isOpen(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; } @@ -8531,7 +8533,6 @@ package android.content.pm { method public void setInstallLocation(int); method public void setOriginatingUri(android.net.Uri); method public void setReferrerUri(android.net.Uri); - method public void setSignatures(android.content.pm.Signature[]); method public void setSize(long); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; @@ -8647,6 +8648,8 @@ package android.content.pm { method public android.content.pm.PackageInstaller.Session openSession(int); method public void removeSessionCallback(android.content.pm.PackageInstaller.SessionCallback); method public void uninstall(java.lang.String, android.content.pm.PackageInstaller.UninstallCallback); + field public static final java.lang.String ACTION_SESSION_DETAILS = "android.content.pm.action.SESSION_DETAILS"; + field public static final java.lang.String EXTRA_SESSION_ID = "android.content.pm.extra.SESSION_ID"; } public static abstract class PackageInstaller.CommitCallback { @@ -8666,14 +8669,18 @@ package android.content.pm { method public void close(); method public void commit(android.content.pm.PackageInstaller.CommitCallback); method public void fsync(java.io.OutputStream) throws java.io.IOException; + method public java.lang.String[] list(); + method public java.io.InputStream openRead(java.lang.String) throws java.io.IOException; method public java.io.OutputStream openWrite(java.lang.String, long, long) throws java.io.IOException; method public void setProgress(float); } public static abstract class PackageInstaller.SessionCallback { ctor public PackageInstaller.SessionCallback(); + method public abstract void onClosed(int); method public abstract void onCreated(int); method public abstract void onFinished(int, boolean); + method public abstract void onOpened(int); method public abstract void onProgressChanged(int, float); } |