0

How can I get the version of my Android app on XE8?

this code don't compile on XE8

  PackageManager := SharedActivity.getPackageManager;
  PackageInfo := PackageManager.getPackageInfo(SharedActivityContext.getPackageName(), TJPackageManager.JavaClass.GET_ACTIVITIES);
  result:= JStringToString(PackageInfo.versionName);
Dison
  • 103
  • 1
  • 1
  • 12
  • What is the actual compiler error? On which line? – Remy Lebeau Sep 16 '15 at 01:20
  • The compiler say Undeclared identifier: 'JPackageManager' I have in the use, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, FMX.Helpers.Android, Androidapi.JNI.Net, Androidapi.JNI.Os, Androidapi.Helpers, Androidapi.IOUtils, Androidapi.JNI.App, Androidapi.JNIBridge, Androidapi.NativeActivity; – Dison Sep 16 '15 at 12:26
  • In XE8, `JPackageManager` is declared in the `Androidapi.JNI.GraphicsContentViewText` unit. In any case, this question is a duplicate of http://stackoverflow.com/questions/22315571/. – Remy Lebeau Sep 16 '15 at 17:15

1 Answers1

4

Using the JPackageInfo class is simple to retrive the version of your Android application.

This class is already wrapped by Embarcadero in the following unit: Androidapi.JNI.GraphicsContentViewText

 {code}

 {$IFDEF ANDROID}

 var
   PackageManager: JPackageManager;
   PackageInfo: JPackageInfo;
 begin
   PackageManager := SharedActivityContext.getPackageManager;
   PackageInfo := PackageManager.getPackageInfo
     (SharedActivityContext.getPackageName, 0);
   result := JStringToString(PackageInfo.versionName);
 End;
{$ENDIF}
Ivan Revelli
  • 363
  • 4
  • 8