Fórum Verificar se meu delphi é compativel meu android #600752
25/02/2019
0
Hélio muito obrigado,
Como faço para verificar se o meu delphi e sdk configurado no delphi esta compativel com meu android.
Como faço para verificar se o meu delphi e sdk configurado no delphi esta compativel com meu android.
Nardelio Santos
Curtir tópico
+ 0
Responder
Posts
25/02/2019
Hélio Devmedia
Nardelio, tudo bem?
A Embarcadero publicou alguns códigos que são úteis. Eu particularmente aconselho sempre baixar o ultimo SDK pelo xxx que vem com o Delphi porque aí eu sei que qualquer versão será suportada mas se mesmo assim você precisar de mais precisão segue alguns códigos:
Este código é de um form que pega informação tanto de iOS como de Android:
Uma dica: O Código abaixo é específico para pegar a versão do seu aplicativo android
A Embarcadero publicou alguns códigos que são úteis. Eu particularmente aconselho sempre baixar o ultimo SDK pelo xxx que vem com o Delphi porque aí eu sei que qualquer versão será suportada mas se mesmo assim você precisar de mais precisão segue alguns códigos:
Este código é de um form que pega informação tanto de iOS como de Android:
unit uOSVersionAndLocale;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.Platform
{$IFDEF Android}
,Androidapi.JNI.Os //TJBuild
,Androidapi.Helpers // StringToJString
{$ENDIF}
{$IFDEF IOS}
,iOSapi.UIKit
,Posix.SysSysctl
,Posix.StdDef
{$ENDIF}
;
type
TForm1 = class(TForm)
Memo1: TMemo;
ToolBar1: TToolBar;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{$IFDEF IOS}
function GetDeviceModelString: String;
{$ENDIF}
{ private }
public
{ public }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
{$IFDEF IOS}
function TForm1.GetDeviceModelString: String;
var
Size: size_t;
DeviceModelBuffer: array of Byte;
begin
sysctlbyname('hw.machine', nil, @Size, nil, 0);
if Size > 0 then
begin
SetLength(DeviceModelBuffer, Size);
sysctlbyname('hw.machine', @DeviceModelBuffer[0], @Size, nil, 0);
Result := UTF8ToString(MarshaledAString(DeviceModelBuffer));
end
else
Result := EmptyStr;
end;
{$ENDIF}
procedure TForm1.Button1Click(Sender: TObject);
var
OSVersion: TOSVersion;
OSLang: String;
LocaleService: IFMXLocaleService;
ModelName: String;
begin
ModelName := 'unknown';
{$IFDEF Android}
ModelName := JStringToString(TJBuild.JavaClass.MODEL);
{$ENDIF}
{$IFDEF IOS}
ModelName := GetDeviceModelString;
{$ENDIF}
Memo1.Lines.Add(Format('ModelName=%s', [ ModelName ] ));
Memo1.Lines.Add(Format('OSName=%s', [OSVersion.Name]));
Memo1.Lines.Add(Format('Platform=%d', [Ord(OSVersion.Platform)]));
Memo1.Lines.Add(Format('Version=%d.%d', [OSVersion.Major,OSVersion.Minor]));
OSLang := '';
if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LocaleService)) then
begin
OSLang := LocaleService.GetCurrentLangID();
// if set Japanese on Android, LocaleService returns "jp", but other platform returns "ja"
// so I think it is better to change "jp" to "ja"
if (OSLang = 'jp') then OSLang := 'ja';
end;
Memo1.Lines.Add(Format('Lang=%s', [ OSLang ] ));
end;
end.
Uma dica: O Código abaixo é específico para pegar a versão do seu aplicativo android
uses
androidapi.Helpers,
Androidapi.JNI.JavaTypes,
androidapi.JNI.GraphicsContentViewText;
{$R *.fmx}
procedure TForm15.Button1Click(Sender: TObject);
var
PkInfo: JPackageInfo;
begin
Memo1.Lines.Clear;
PkInfo:=SharedActivityContext.getPackageManager.getPackageInfo(SharedActivityContext.getPackageName,0);
Memo1.Lines.Add('Package: '+JStringToString(PkInfo.packageName));
Memo1.Lines.Add('Version Name: '++JStringToString(PkInfo.versionName));
Memo1.Lines.Add('Version Code: '++JStringToString(PkInfo.versionCode));
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)