zoukankan      html  css  js  c++  java
  • 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.
  • 相关阅读:
    解释机器学习模型的一些方法(一)——数据可视化
    机器学习模型解释工具-Lime
    Hive SQL 语法学习与实践
    LeetCode 198. 打家劫舍(House Robber)LeetCode 213. 打家劫舍 II(House Robber II)
    LeetCode 148. 排序链表(Sort List)
    LeetCode 18. 四数之和(4Sum)
    LeetCode 12. 整数转罗马数字(Integer to Roman)
    LeetCode 31. 下一个排列(Next Permutation)
    LeetCode 168. Excel表列名称(Excel Sheet Column Title)
    论FPGA建模,与面向对象编程的相似性
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/5413809.html
Copyright © 2011-2022 走看看