程序更新的功能是一个很现实的功能,今天做了一个关于程序自动更新的功能。在这之中遇到了一些很烦人的功能,不是实现的方式,而是一些小细节灭有弄好,而导致自己怀疑所写的程序是否有问题。呵呵,其实就是这个小细节。在我们打包为apk文件的时候,签名的证书一定要相同,我就是没有想到这个而浪费了大半天的时间。呵呵,这也是一个教训吧!好同大家分享一下更新下载文件的代码!如果有什么更好的方法请指出。
通过网络 来读取信息:在checkUpdate()方法中包含了通过制定的URL来读取网络资源。
程序版本号的是放在AndroidManifest.xml文件中:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="linhai.com.hello" android:versionCode="2" android:versionName="2.0.1">
主点是关于:getPackageManager()在这个下面有很多方法,你可以通过它得,得到当前终端安装的程序等。关于安装包的函数是:getPackageManager().installPackage(packageURI)
以下是下载新版本文件后的更新的方法
private Runnable showUpdate = new Runnable() {
public void run() {
new AlertDialog.Builder(DownActivity.this)
.setTitle("Update Available")
.setMessage("是否对新版本进行更新?")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton) {
String fileName = Environment.getExternalStorageDirectory() + "/"+ readNAme;//从SdCard中该文件的文件名
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)),"application/vnd.android.package-archive");
startActivity(intent);
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
}
})
.show();
}
};
最后在下载新版本文件后执行mHandler.post(showUpdate);就可以自动更新喽,记得新版本的apk的密匙文件要同上一个版本的要兼容哦,不然就不可以更新替换了,只能卸载旧版本才可以进行安装!!呵呵,希望对大家有帮助!!