创建手动版本
问题描述:
Iam计划创建一个应用程序,而不是在谷歌市场发布它。 我希望用户在一段时间内更新thire应用程序,当更新将通过服务器rlsd(让我们不想进入想法,我将如何做到这一点)...所以为此,我需要给每个应用程序一些ID,所以我知道该用户需要更新他的应用程序,而不是新的安装(我想避免用户将有两个版本的应用程序的情况下)..当然安装应用程序给新用户。 当我手动更新版本时,我怎样才能用版本签署这些应用程序? mybe一些其他的想法?创建手动版本
谢谢, 射线。
答
您可以使用AndroidManifest.xml中的android:versionCode
和android:versionName
属性。这样一来,只要包名相同也不会重叠,就可以得到像这样的信息,看是否有可用的更新版本:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.moo.android.myApp"
android:versionCode="12"
android:versionName="1.2.37">
然后你就可以读取这些值和比较与您的服务器上的值,如:
try
{
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo("org.moo.android.myApp", 0);
int code = info.versionCode;
String name = info.versionName;
// Compare with values on the server to see if there is a new version
}
catch(NameNotFoundException nnf)
{
nnf.printStackTrace();
}
如果你检查相同的应用程序的版本,你可以用context.getPackageName()
代替硬编码的包名。
答
我不会担心每一次说明都要签名,为什么不只是在具有版本号的strings.xml文件中有一个值呢?简单地检查服务器上的值可以确定是否需要更新。
+0
谢谢,生病也试试这个解决方案 – rayman 2010-04-21 18:01:07
+1这可能是我建议的“更清洁”版本。 (坦率地说,你可能应该这么做;-)) – 2010-04-21 18:28:39
如果你喜欢,你可以使用'context.getPackageName()'而不是硬编码。我认为。 – Timmmm 2012-11-14 10:52:18