创建手动版本

时间:2010-04-21 16:50:30

标签: android

我打算创建一个应用程序,而不是在谷歌市场上发布它。 我希望用户偶尔更新一次应用程序,因为更新将通过服务器进行更新(让我们不知道我将如何做到这一点)...所以对于这个我需要给每个应用程序一些ID,所以我知道该用户必须更新他的应用程序,而不是新安装(我想避免用户将有两个版本的应用程序的情况)..并且当然将应用程序安装到新用户。 当我手动更新时,我怎么能用版本签署这些应用程序? mybe还有其他想法吗?

感谢, 射线。

2 个答案:

答案 0 :(得分:15)

您可以使用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()替换硬编码的包名称。

答案 1 :(得分:0)

我不担心按照说法签名,为什么不在strings.xml文件中有一个具有版本号的值?只需检查服务器上的值就可以确定是否需要更新。