我想创建基于Adobe Air的Android应用程序的更新机制。在我的私人,非常小的应用程序受众的特殊情况下,我使用我的应用程序apk文件的直接分发(没有Google Play,通过用户设备上的物理安装)。但我还需要能够自动安装更新(假设它是一个按钮'检查更新'在我的应用UI中)。任何人都可以帮我完成这项任务吗?我该如何创建呢?
现在我有了这个想法: 我尝试用我的应用程序下载文件(使用加载器并使用File api将文件写入)到用户存储...然后我想使用任何Air Native Extension来启动该文件。是否已经创建了ANE来做到这一点?
答案 0 :(得分:0)
在我的创建自动更新机制的情况下,我从app.xml获取本地版本号,从服务器获取最新号码。 这是我的设置。
app.xml的
...
<name>mysomeapp</name>
<!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.
Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . -->
<versionNumber>1.0.1</versionNumber>
...
动作
private var appVersion: String;
public function init():void
{
// Get local versionnumber from app.xml
var appDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = appDescriptor.namespace();
appVersion = appDescriptor.ns::versionNumber; // In this case, it returns "1.0.1".
// Get latest versionnumber from server
var httpservice: HTTPService = new HTTPService();
httpservice.url = "http://myserver/foobar/version";
httpservice.method = URLRequestMethod.GET;
httpservice.addEventListener(ResultEvent.RESULT, checkVersionResult);
httpservice.send();
}
public function checkVersionResult(e: ResultEvent): void
{
// Compare latest number with local number.
if (e.result != appVersion)
{
// If the local version is not latest, download latest app from server.
navigateToURL(new URLRequest("http://myserver/foobar/androidAppDownload"));
}
}