全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2167
推到 Plurk!
推到 Facebook!

如可取得手機,平板硬體資訊(例如htc,samsung,huawei..)??

答題得分者是:h@visli
艾瑞克
一般會員


發表:11
回覆:6
積分:3
註冊:2016-09-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2018-03-07 09:35:44 IP:113.196.xxx.xxx 未訂閱
各位版大,,小弟目前正在寫1只小型行動版資料庫程式...!!須要硬体(品牌)名稱..例如(oppo,htc,asus..等)請問有何方法..可以取得???謝謝!!
------
艾瑞克
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2018-03-07 16:51:22 IP:27.38.xxx.xxx 未訂閱
 
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.
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2018-03-07 17:06:22 IP:27.38.xxx.xxx 未訂閱
// 下面的Brand與Manufacturer應該是你要的
Memo1.Lines.Add('BRAND: ' JStringToString(TJBuild.JavaClass.BRAND)) ;
Memo1.Lines.Add('MANUFACTURER: ' JStringToString(TJBuild.JavaClass.MANUFACTURER)) ;

Memo1.Lines.Add('DEVICE: ' JStringToString(TJBuild.JavaClass.DEVICE));
Memo1.Lines.Add('getRadioVersion: ' JStringToString(TJBuild.JavaClass.getRadioVersion));

Memo1.Lines.Add('DISPLAY: ' JStringToString(TJBuild.JavaClass.DISPLAY)) ;
Memo1.Lines.Add('BOARD: ' JStringToString(TJBuild.JavaClass.BOARD)) ;
Memo1.Lines.Add('BOOTLOADER: ' JStringToString(TJBuild.JavaClass.BOOTLOADER)) ;
Memo1.Lines.Add('HARDWARE: ' JStringToString(TJBuild.JavaClass.HARDWARE)) ;
Memo1.Lines.Add('ID: ' JStringToString(TJBuild.JavaClass.ID)) ;
Memo1.Lines.Add('RADIO: ' JStringToString(TJBuild.JavaClass.RADIO)) ;
===================引 用 艾瑞克 文 章===================
各位版大,,小弟目前正在寫1只小型行動版資料庫程式...!!須要硬体(品牌)名稱..例如(oppo,htc,asus..等)請問有何方法..可以取得???謝謝!!
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
編輯記錄
h@visli 重新編輯於 2018-03-07 17:09:32, 註解 無‧
h@visli 重新編輯於 2018-03-07 17:11:07, 註解 無‧
艾瑞克
一般會員


發表:11
回覆:6
積分:3
註冊:2016-09-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2018-03-07 17:59:58 IP:59.124.xxx.xxx 未訂閱
謝謝...h@visli 大力 協助!!!
------
艾瑞克
系統時間:2024-04-28 19:39:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!