我打算创建一个应用程序,而不是在谷歌市场上发布它。 我希望用户偶尔更新一次应用程序,因为更新将通过服务器进行更新(让我们不知道我将如何做到这一点)...所以对于这个我需要给每个应用程序一些ID,所以我知道该用户必须更新他的应用程序,而不是新安装(我想避免用户将有两个版本的应用程序的情况)..并且当然将应用程序安装到新用户。 当我手动更新时,我怎么能用版本签署这些应用程序? mybe还有其他想法吗?
感谢, 射线。
答案 0 :(得分:15)
您可以使用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()
替换硬编码的包名称。
答案 1 :(得分:0)
我不担心按照说法签名,为什么不在strings.xml文件中有一个具有版本号的值?只需检查服务器上的值就可以确定是否需要更新。