这个应用程序不在 google play 上。我可以从服务器手动更新,但我想自动更新它,就像在 google play 中一样,它在 bg 中自动更新,并在通知栏中显示。
我怎样才能做到这一点?
谢谢
这个应用程序不在 google play 上。我可以从服务器手动更新,但我想自动更新它,就像在 google play 中一样,它在 bg 中自动更新,并在通知栏中显示。
我怎样才能做到这一点?
谢谢
是的,要在后台更新您的数据/APK,您可以使用 GCM(谷歌云消息)推送通知。
为此,您可以在应用程序启动时询问用户何时从服务器更新您的数据/APK。现在,当服务器的数据更改时,您可以简单地向设备发送推送通知并在后台更新您的数据。如果 APK 然后下载它并将其安装在设备中。
您将获得更多详情Google Cloud Messaging for Android | 安卓开发者
希望它会有所帮助。
您可以设置一个定期运行的服务,并检查服务器是否有可用的更新(检查 APK 的时间戳是检查这一点的一种方法)。
然后下载APK。安装它,并发送通知。
这是一件复杂的事情,如果你能帮助它,你可能不想自己做。(为什么不在 Play Market 中?)
看看这个解决方案如何通过 url 安装 apk 或者你想安装一个已经下载到设备的本地 apk 文件
如何确定有更新?定期轮询您的服务器,或者使用 Google Cloud Messaging 或类似工具。
按照此链接,应用内更新仅适用于运行 Android 5.0(API 级别 21)或更高版本的设备,并且需要您使用 Play Core 库 1.5.0 或更高版本。类型:
注意:当您将应用发布为 Android App Bundle 时,使用应用内更新的应用的最大允许压缩下载大小为 150MB。应用内更新与使用 APK 扩展文件(.obb 文件)的应用不兼容。
检查更新可用性
// Creates instance of the manager.
AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(context);
// Returns an intent object that you use to check for an update.
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
// Checks that the platform will allow the specified type of update.
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
// For a flexible update, use AppUpdateType.FLEXIBLE
&& appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
// Request the update.
}
});
开始更新
appUpdateManager.startUpdateFlowForResult(
// Pass the intent that is returned by 'getAppUpdateInfo()'.
appUpdateInfo,
// Or 'AppUpdateType.FLEXIBLE' for flexible updates.
AppUpdateType.IMMEDIATE,
// The current activity making the update request.
this,
// Include a request code to later monitor this update request.
MY_REQUEST_CODE);
您请求的更新类型决定了您需要采取的后续步骤。要了解更多信息,请阅读有关如何处理即时更新或处理灵活更新的部分。
获取更新状态的回调
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (myRequestCode == MY_REQUEST_CODE) {
if (myRequestCode != RESULT_OK) {
log("Update flow failed! Result code: " + resultCode);
// If the update is cancelled or fails,
// you can request to start the update again.
}
}
}
有关执行代码签出链接的更多信息共享