코드를 통해 애플리케이션 버전 번호를 얻기 위해 AndroidManifest.xml 파일을 구문 분석하는 방법을 알고 싶습니다. 안드로이드 : versionName를코드에서 안드로이드 : versionName 매니페스트 요소 얻기
답변
필요가 이것에 대한 AndroidManifest.xml
파일을 구문 분석합니다.
당신은 사용하여이 작업을 얻을 수 있습니다 : 당신의 onCreate()
방법 내부
try
{
String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
}
catch (NameNotFoundException e)
{
Log.e(tag, e.getMessage());
}
사용이.
나는 내 응용 프로그램 android : versionName을 다운로드 할 때 응용 프로그램과 비교해야합니다. 내 응용 프로그램은 안드로이드 마켓에 없습니다 .. 내 모바일에있는 versionName을 사이트에서 사용할 수있는 것과 비교하여 새 버전을 obatin하고이를 업데이트하라는 경보를 표시해야합니다 .. 어떻게 새 버전의 응용 프로그램을 가져올 수 있습니까? – jennifer
@jebbifer : 애플리케이션에서 'Http Get'요청을 만들고이 요청의 매개 변수로이 값을 보내면됩니다. 그리고 서버에서 요청을 처리하고 해당 응용 프로그램 버전 값을 비교해야합니다. 클라이언트 응용 프로그램보다 크면 응답에서 해당 응용 프로그램의 새 버전을 다운로드하는 링크를 보냅니다. –
Very niiiice ++ –
다른 사람에게 도움이 될 경우 다른 xml 파일에서와 같이 AndroidManifest.xml의 @string
리소스에 액세스 할 수도 있습니다. 그래서 예를 들어, AndroidManifest.xml을의
:
android:versionName="@string/app_versionName"
및 코드 :
string versionName = getResources().getString(R.string.app_versionName);
당신이 (성가신, IMO) 시도/catch 문이 필요하지 않습니다 이쪽으로. 이 일이 승인 된 방법인지 확실하지 않지만 나에게 의미가 있습니다.
좋은 해결책 :) – Janusz
우리는 목록 내용을 얻을 수 있습니까? –
멋진 솔루션! 매니페스트에서 직접 문자열을 편집하는 대신 문자열 값을 사용하여 편집하면 코드가 변경되지 않습니다! 나는 좋아한다! +2 : P –
지금까지 내가 this 기사에서 아래의 코드를 사용하고 성공적으로 AndroidManifest.xml
/* Get android:versionName */
String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
/* Get android:versionCode */
int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
링크 전용 답변이 적합하지 않으므로 답변을 확장하십시오. –
당신은 안드로이드 Studio를 사용하는 경우, 버전 이름에서 버전 코드 및 버전 이름있어 클래스 BuildConfig에서 사용할 수 있습니다. 이 클래스는 컴파일시 생성 :
String versionName = BuildConfig.VERSION_NAME;
버전 이름을 검색하는 가장 깨끗한 방법입니다.
허용되는 대답이어야합니다! 대단히 감사합니다. – Phil
Gradle을 사용하는 경우 애플리케이션의 'versionName'을 (를) BuildConfig.VERSION_NAME으로 가져올 수 있습니다. 여기에 대한 답변을 참조하십시오 : http://stackoverflow.com/a/28352130/293280 –