首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >设备所有者Android应用程序的OTA更新(Kiosk模式)

设备所有者Android应用程序的OTA更新(Kiosk模式)
EN

Stack Overflow用户
提问于 2015-06-25 13:24:09
回答 4查看 2.2K关注 0票数 19

我能够使我的应用程序,设备所有者的应用程序通过近场通信提到的here。现在我想通过无线方式更新我的应用程序,但是我找不到没有根的方法

谷歌为企业提供了许多选择,以开发here提到的应用程序,但没有提供通过here更新应用程序的方法。

寻找解决方案。

EN

回答 4

Stack Overflow用户

发布于 2015-07-03 18:26:29

这纯粹是猜测,因为我自己从来没有尝试过使用包安装程序API:

您可以尝试为您的设备所有者应用程序设置安装程序包(使用PackageManager.setInstallerPackageName())。此安装程序包需要是使用与设备所有者APK相同的证书签名的单独APK。

代码语言:javascript
复制
getPackageManager().setInstallerPackage("<device.owner.package.name>", "<installer.package.name>");

在您的安装程序APK中,您可以使用PackageInstaller来准备更新:

代码语言:javascript
复制
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();

我不确定这是否会静默地安装你的更新(或者它是否会以我所期望的方式工作)。

票数 4
EN

Stack Overflow用户

发布于 2015-07-03 03:25:32

创建服务以进行后台检查以进行更新。如果更新可用,请下载apk文件并将其写入sdcard等位置。等待几秒钟以完全刷新写入。然后调用下面的代码来安装新的apk。

代码语言:javascript
复制
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);

fileName是你的新apk文件在SD卡上的路径。

票数 1
EN

Stack Overflow用户

发布于 2015-07-03 15:33:51

你可以使用Play Store为你的应用程序提供更新:

  1. 通过近场通信提供设备所有者应用,就像您已经执行的操作一样。
  2. 在Play应用商店上提供设备所有者应用的更新版本(相同的包名、相同的签名、更高的版本号)。
  3. 在您设备上的Play应用商店应用中,搜索该应用的Play应用版本,并在Play应用商店中为您的设备所有者应用安装update.
  4. Activate自动更新(在您的应用的Play应用商店页面上,单击菜单(三个点),然后激活自动更新的复选框。

这对于配置阶段来说是相当费力的,但设备应该会自动接收未来的更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31041832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档