发布于 2015-07-03 18:26:29
这纯粹是猜测,因为我自己从来没有尝试过使用包安装程序API:
您可以尝试为您的设备所有者应用程序设置安装程序包(使用PackageManager.setInstallerPackageName()
)。此安装程序包需要是使用与设备所有者APK相同的证书签名的单独APK。
getPackageManager().setInstallerPackage("<device.owner.package.name>", "<installer.package.name>");
在您的安装程序APK中,您可以使用PackageInstaller
来准备更新:
PackageInstaller pi = getPackageManager().getPackageInstaller();
int sessId = pi.createSession(new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL));
PackageInstaller.Session session = pi.openSession(sessId);
OutputStream out = session.openWrite("app");
// .. write updated APK file to out
session.fsync(out);
session.commit(...);
session.close();
我不确定这是否会静默地安装你的更新(或者它是否会以我所期望的方式工作)。
发布于 2015-07-03 03:25:32
创建服务以进行后台检查以进行更新。如果更新可用,请下载apk文件并将其写入sdcard等位置。等待几秒钟以完全刷新写入。然后调用下面的代码来安装新的apk。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);
fileName
是你的新apk文件在SD卡上的路径。
发布于 2015-07-03 15:33:51
你可以使用Play Store为你的应用程序提供更新:
这对于配置阶段来说是相当费力的,但设备应该会自动接收未来的更新。
https://stackoverflow.com/questions/31041832
复制相似问题