Android实例-获取程序版本号(XE10+小米2)
2016-04-20 18:21
417 查看
![](https://images.cnblogs.com/cnblogs_com/FKdelphi/716934/o_Android%e5%ae%9e%e4%be%8b%e4%b9%8b%e8%8e%b7%e5%8f%96%e7%a8%8b%e5%ba%8f%e7%89%88%e6%9c%ac%e5%8f%b7.png)
相关资料: 383675978群号
实例源码:
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, xGetVerNo;//Get_OSVer使用 type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} {$R *.NmXhdpiPh.fmx ANDROID} procedure TForm1.FormCreate(Sender: TObject); begin Label2.Text := Get_OSVer;//获取版本号 end; end.
第三方源码:
{*******************************************************} { } { XE7 安卓框架 } { } { 版权所有 (C) 2015 打工的程序员 } { 日期: 2015.01.15 } { 源码QQ:2403182533 { } {*******************************************************} unit xGetVerNo; interface uses {$IFDEF MSWINDOWS} Winapi.Windows, {$ENDIF} {$IFDEF ANDROID} Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, FMX.Helpers.Android, Androidapi.Helpers, {$ENDIF} {$IFDEF IOS} FMX.Platform.iOS, iOSapi.Foundation, Macapi.ObjectiveC, {$ENDIF} {$IFDEF MACOS} FMX.Platform.Mac, Macapi.Foundation, Macapi.ObjectiveC, {$ENDIF}System.SysUtils ; function Get_OSVer:string; implementation {$IFDEF MSWINDOWS} procedure GetBuildInfo(var V1, V2, V3, V4: word); var VerInfoSize, VerValueSize, Dummy: DWORD; VerInfo: Pointer; VerValue: PVSFixedFileInfo; begin VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy); if VerInfoSize > 0 then begin GetMem(VerInfo, VerInfoSize); try if GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo) then begin VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize); with VerValue^ do begin V1 := dwFileVersionMS shr 16; V2 := dwFileVersionMS and $FFFF; V3 := dwFileVersionLS shr 16; V4 := dwFileVersionLS and $FFFF; end; end; finally FreeMem(VerInfo, VerInfoSize); end; end; end; function GetBuildInfoAsString: string; var V1, V2, V3, V4: word; begin GetBuildInfo(V1, V2, V3, V4); Result := IntToStr(V1) + '.' + IntToStr(V2) + '.' + IntToStr(V3) + '.' + IntToStr(V4); end; {$ENDIF} function Get_OSVer:string; {$IFDEF MSWINDOWS} begin Result:=GetBuildInfoAsString; end; {$ENDIF} {$IFDEF ANDROID} var PackageInfo: JPackageInfo; PackageName: JString; begin PackageName := SharedActivityContext.getPackageName; PackageInfo := SharedActivityContext.getPackageManager.getPackageInfo(PackageName, 0); Result:= JStringToString(PackageInfo.versionName); end; {$ENDIF} {$IF Defined(IOS) or Defined(MACOS)} var AppNameKey: Pointer; AppBundle: NSBundle; NSAppName: NSString; begin AppBundle := TNSBundle.Wrap(TNSBundle.OCClass.mainBundle); AppNameKey := (NSSTR('CFBundleVersion') as ILocalObject).GetObjectID; NSAppName := TNSString.Wrap(AppBundle.infoDictionary.objectForKey(AppNameKey)); Result:= UTF8ToString(NSAppName.UTF8String)+#13#10; end; {$ENDIF} end.
相关文章推荐
- android 语言切换 横竖屏切换
- 为什么我们总是使用android:configChanges=“keyboardHidden|orientation”?
- Android保持屏幕常亮的三种方法
- android 百度地图定位开发2
- Android ScrollView的使用
- Android 内存分析(简)
- android-Junit单元测试
- Android Selector 与 Shape 基本用法
- Android引导页设计
- binbinyang---Android 常用控件
- Android WindowManager详解
- Android资源文件混淆
- Android初试--Android中的文件操作之SDcard操作(2)
- Android开发中,那些让你相见恨晚的方法、类或接口
- android多线程并发协调semaphore机制
- android开发 根据上传图片张数变换不同的布局
- Android开发中,那些让你相见恨晚的方法、类或接口
- Android热修复框架HotFix分析拓展
- Android sp<> 指针类的用法
- Android 内存使用hprof文件打开方法