Đó không phải là có thể cho phi-platform (3rd-party) ứng dụng: bạn phải thực hiện yêu cầu cài đặt trực tiếp đến PackageManager.
PackageManager có API ngoài công lập, installPackage() (dòng 2584 như các văn bản này):
/**
* @hide
*
* Install a package. Since this may take a little while, the result will
* be posted back to the given observer. An installation will fail if the calling context
* lacks the {@link android.Manifest.permission#INSTALL_PACKAGES} permission, if the
* package named in the package file's manifest is already installed, or if there's no space
* available on the device.
*
* @param packageURI The location of the package file to install. This can be a 'file:' or a
* 'content:' URI.
* @param observer An observer callback to get notified when the package installation is
* complete. {@link IPackageInstallObserver#packageInstalled(String, int)} will be
* called when that happens. observer may be null to indicate that no callback is desired.
* @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},
* {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.
* @param installerPackageName Optional package name of the application that is performing the
* installation. This identifies which market the package came from.
*/
public abstract void installPackage(
Uri packageURI, IPackageInstallObserver observer, int flags,
String installerPackageName);
nơi mà một trong những lá cờ có thể là INSTALL_ALLOW_DOWNGRADE
:
/**
* Flag parameter for {@link #installPackage} to indicate that it is okay
* to install an update to an app where the newly installed app has a lower
* version code than the currently installed app.
*
* @hide
*/
public static final int INSTALL_ALLOW_DOWNGRADE = 0x00000080;
Tất cả các API được ẩn và không thể truy cập cho các ứng dụng của bên thứ ba. Bây giờ, bạn có thể thử suy nghĩ, nhưng tôi khá tích cực rằng nền tảng sẽ hạn chế truy cập vào chúng anyway.
Nếu điều này làm khách hàng doanh nghiệp của bạn khó chịu nhiều như tôi, hãy khắc phục vấn đề ở đây: https://code.google .com/p/android/issues/detail? id = 62545 –