Я планирую создать приложение а не опубликовать его на рынке Google. я хочу, чтобы пользователи обновили thire приложение время от времени, когда обновления будут rlsd через сервер (давайте не входить в идею, как я собираюсь сделать это)... так для этого, я должен дать каждому приложению некоторый идентификатор, таким образом, я знаю, что тот пользователь должен обновить свое приложение и не новую установку (я хочу избежать случая, у пользователя будет две версии приложения).. и, конечно, установите приложение на новых пользователях. как я мог подписать те приложения с версией когда я rls обновление вручную? mybe некоторая другая идея?
спасибо, луч.
Вы можете использовать атрибуты android: versionCode
и android: versionName
в файле AndroidManifest.xml. Таким образом, до тех пор, пока имя пакета не изменится, оно не будет перекрываться, и вы можете получить эту информацию следующим образом, чтобы узнать, доступна ли более новая версия:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.moo.android.myApp"
android:versionCode="12"
android:versionName="1.2.37">
Затем вы можете прочитать эти значения и сравнить со значениями на вашем server, например:
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 что есть номер версии? Простая проверка значения на сервере может определить, необходимо ли обновление.