创建手动版本

问题描述:

Iam计划创建一个应用程序,而不是在谷歌市场发布它。 我希望用户在一段时间内更新thire应用程序,当更新将通过服务器rlsd(让我们不想进入想法,我将如何做到这一点)...所以为此,我需要给每个应用程序一些ID,所以我知道该用户需要更新他的应用程序,而不是新的安装(我想避免用户将有两个版本的应用程序的情况下)..当然安装应用程序给新用户。 当我手动更新版本时,我怎样才能用版本签署这些应用程序? mybe一些其他的想法?创建手动版本

谢谢, 射线。

您可以使用AndroidManifest.xml中的android:versionCodeandroid: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()代替硬编码的包名。

+0

+1这可能是我建议的“更清洁”版本。 (坦率地说,你可能应该这么做;-)) – 2010-04-21 18:28:39

+4

如果你喜欢,你可以使用'context.getPackageName()'而不是硬编码。我认为。 – Timmmm 2012-11-14 10:52:18

我不会担心每一次说明都要签名,为什么不只是在具有版本号的strings.xml文件中有一个值呢?简单地检查服务器上的值可以确定是否需要更新。

+0

谢谢,生病也试试这个解决方案 – rayman 2010-04-21 18:01:07