• Android实例-获取程序版本号(XE10+小米2)


    相关资料: 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.
  • 相关阅读:
    面试(串讲三)
    未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“Microsoft.VisualStudio.Data.Providers.SqlServer.SqlViewSupport.xml”正确嵌入或链接到程序集“Microsoft.VisualStudio.Data.Providers.SqlServer”,或者确保所有需要的附属程序集都可加载并已进行了完全签名。
    爬虫-js逆向记录1
    Spring Boot前后端分离直接访问静态页+ajax实现动态网页
    MODBUS-TCP通讯协议V1.03
    vs2019调试时,取消线程abort终止导致异常中断方法
    TCP/IP报文分析
    专业免费的图片、照片去灰底、修复软件,专业人员都在用它
    c指针的传递
    golang实现三重DES加密解密
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/5413809.html
Copyright © 2020-2023  润新知