Android实例-获取程序版本号

相关资料: 383675978群号

实例源码:

 1 unit Unit1;
 2
 3 interface
 4
 5 uses
 6   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 7   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
 8   FMX.Controls.Presentation, FMX.StdCtrls,
 9   xGetVerNo;//Get_OSVer使用
10
11 type
12   TForm1 = class(TForm)
13     Label1: TLabel;
14     Label2: TLabel;
15     procedure FormCreate(Sender: TObject);
16   private
17     { Private declarations }
18   public
19     { Public declarations }
20   end;
21
22 var
23   Form1: TForm1;
24
25 implementation
26
27 {$R *.fmx}
28 {$R *.NmXhdpiPh.fmx ANDROID}
29
30 procedure TForm1.FormCreate(Sender: TObject);
31 begin
32   Label2.Text := Get_OSVer;//获取版本号
33 end;
34
35 end.

第三方源码:

  1 {*******************************************************}
  2 {                                                       }
  3 {       XE7 安卓框架                                    }
  4 {                                                       }
  5 {       版权所有 (C) 2015 打工的程序员                  }
  6 {       日期:    2015.01.15         }
  7 {       源码QQ:2403182533
  8 {                                                       }
  9 {*******************************************************}
 10
 11 unit xGetVerNo;
 12
 13 interface
 14
 15 uses
 16   {$IFDEF MSWINDOWS}
 17   Winapi.Windows,
 18   {$ENDIF}
 19
 20   {$IFDEF ANDROID}
 21   Androidapi.JNI.GraphicsContentViewText,
 22   Androidapi.JNI.JavaTypes,
 23   FMX.Helpers.Android,
 24   Androidapi.Helpers,
 25   {$ENDIF}
 26
 27   {$IFDEF IOS}
 28   FMX.Platform.iOS,
 29   iOSapi.Foundation,
 30   Macapi.ObjectiveC,
 31   {$ENDIF}
 32
 33   {$IFDEF MACOS}
 34   FMX.Platform.Mac,
 35   Macapi.Foundation,
 36   Macapi.ObjectiveC,
 37   {$ENDIF}System.SysUtils ;
 38
 39  function Get_OSVer:string;
 40
 41 implementation
 42
 43
 44 {$IFDEF MSWINDOWS}
 45 procedure GetBuildInfo(var V1, V2, V3, V4: word);
 46 var
 47   VerInfoSize, VerValueSize, Dummy: DWORD;
 48   VerInfo: Pointer;
 49   VerValue: PVSFixedFileInfo;
 50 begin
 51   VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
 52   if VerInfoSize > 0 then
 53   begin
 54       GetMem(VerInfo, VerInfoSize);
 55       try
 56         if GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo) then
 57         begin
 58           VerQueryValue(VerInfo, ‘\‘, Pointer(VerValue), VerValueSize);
 59           with VerValue^ do
 60           begin
 61             V1 := dwFileVersionMS shr 16;
 62             V2 := dwFileVersionMS and $FFFF;
 63             V3 := dwFileVersionLS shr 16;
 64             V4 := dwFileVersionLS and $FFFF;
 65           end;
 66         end;
 67       finally
 68         FreeMem(VerInfo, VerInfoSize);
 69       end;
 70   end;
 71 end;
 72
 73 function GetBuildInfoAsString: string;
 74 var
 75   V1, V2, V3, V4: word;
 76 begin
 77   GetBuildInfo(V1, V2, V3, V4);
 78   Result := IntToStr(V1) + ‘.‘ + IntToStr(V2) + ‘.‘ +
 79     IntToStr(V3) + ‘.‘ + IntToStr(V4);
 80 end;
 81 {$ENDIF}
 82
 83 function Get_OSVer:string;
 84 {$IFDEF MSWINDOWS}
 85 begin
 86   Result:=GetBuildInfoAsString;
 87 end;
 88 {$ENDIF}
 89
 90 {$IFDEF ANDROID}
 91 var PackageInfo: JPackageInfo;
 92     PackageName: JString;
 93 begin
 94   PackageName := SharedActivityContext.getPackageName;
 95   PackageInfo := SharedActivityContext.getPackageManager.getPackageInfo(PackageName, 0);
 96   Result:= JStringToString(PackageInfo.versionName);
 97 end;
 98 {$ENDIF}
 99
100 {$IF Defined(IOS) or Defined(MACOS)}
101 var AppNameKey: Pointer;
102     AppBundle: NSBundle;
103     NSAppName: NSString;
104 begin
105   AppBundle := TNSBundle.Wrap(TNSBundle.OCClass.mainBundle);
106   AppNameKey := (NSSTR(‘CFBundleVersion‘) as ILocalObject).GetObjectID;
107   NSAppName := TNSString.Wrap(AppBundle.infoDictionary.objectForKey(AppNameKey));
108   Result:=  UTF8ToString(NSAppName.UTF8String)+#13#10;
109 end;
110 {$ENDIF}
111
112 end.
时间: 2024-08-02 11:01:47

Android实例-获取程序版本号的相关文章

Android实例-为程序创建快捷方式(未测试)

结果: 1.因为只有小米手机,没有三星手机,没法测试.如果哪位神测试过的话,记得M我哦,谢了. 实例代码:  1 unit Unit1; 2 3 interface 4 5 uses 6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrl

Android实例-获取安卓手机WIFI信息(XE8+小米2)

结果: 1.必须打开Access wifi state权限,不打开权限会出图二的错误. 相关资料: http://blog.csdn.net/lyf_lyf/article/category/173576 实例代码: 1 unit Unit1; 2 3 interface 4 5 uses 6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 FMX.Types, FMX.Contr

c#获取程序版本号

Content.Text = "程序集版本:" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() +"\n";Content.Text += "文件版本:" + Application.ProductVersion.ToString() +"\n";Content.Text += "部署版本:" 

Android中获取应用程序(包)的大小-----PackageManager的使用(二)

通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidManife.xml定义的节点信息类XXXInfo类都有了一定的认识. 本部分的内容是如何获取安装包得大小,包括缓存大小(cachesize).数据大小(datasize).应用程序大小(codesize). 本部分的知识点涉及到AIDL.Java反射机制.理解起来也不是很难. 关于安装包得大小信息封装在Packag

C# 应用程序单例(禁止多开) 获取.net版本号 以及 管理员权限

Mutex不仅提供跨线程的服务,还提供跨进程的服务.当在构造函数中为Mutex指定名称时,则会创建一个命名了的Mutex.其他线程创建Mutex时,如果指定的名称相同,则返回同一个互斥体,不论该线程位于哪个进程或者应用程序域中. 使用命名互斥体的一个例子是创建Singleton应用程序,即只能打开一个实例的应用程序.显然,我们创建的控制台应用程序是可以同时打开多个实例的.下面的代码使用Mutex实现了只能同时开启一个Console控制台程序. string asm = Assembly.GetE

C# wpf程序获取当前程序版本号

/// <summary> /// 获取当前系统的版本号 /// </summary> /// <returns></returns> public static string GetEdition() { return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() ; } C# wpf程序获取当前程序版本号

Android JNI 获取应用程序签名

使用Android JNI 获取应用程序签名. 获取基础上生成自己的签名password,这可以防止别人反编译找到自己的源代码password. jstring Java_com_masonsdk_jni_JNIUtil_getPWD(JNIEnv* env, jobject thizz ,jobject thiz ){ jclass native_clazz = env->GetObjectClass(thiz); // 得到 getPackageManager 方法的 ID jmethodI

Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)

Android开发平台中,可通过TelephonyManager 获取本机号码. TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); txtPhoneNumber.setText(phoneMgr.getLine1Number()); //txtPhoneNumber是一个EditText 用于显示手机号 注: 根据Android的安全机制,在使用Telepho

Delphi2010如何获取程序内部自身版本号?

用原来的GetFileVersionInfo只能获取Delpi7的程序版本号,用在Delphi2010中就不管用了 //------ 获取文件版本号 function F_GetFileVersion(FN: string): string; var Temp, InfoSize: Cardinal; FileData: Pointer; FileInfo: PVSFixedFileInfo; begin Result := ''; if not FileExists(FN) then Exit