zoukankan      html  css  js  c++  java
  • 转:Delphi 获取安卓手机WIFI信息(XE8)

    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.StdCtrls,
      Androidapi.JNI.GraphicsContentViewText, Androidapi.JNIBridge,
      Androidapi.JNI.Telephony, Androidapi.JNI.JavaTypes, FMX.Helpers.Android,
      FMX.Layouts, FMX.Memo, FMX.ScrollBox, FMX.Controls.Presentation, Androidapi.JNI.Net
      ;
     
     
    type
      TForm3 = class(TForm)
        Memo1: TMemo;
        btn1: TButton;
        procedure btn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
     
    var
      Form3: TForm3;
     
     
     
     
    implementation
     
     
    uses Androidapi.Helpers;
     
     
    {$R *.fmx}
     
     
     
     
    //ip地址整数转字符串
    function int2Ip(intIP : Int64) : string;
    var
      n : int64;
      ip4, ip3, ip2, ip1: string;
    begin
      Result := '';
      n := intIP shr 24;
      intIP := intIP xor (n shl 24);
      ip4 := IntToStr(n);
     
     
      n := intIP shr 16;
      intIP := intIP xor (n shl 16);
      ip3 := IntToStr(n);
     
     
      n := intIP shr 8;
      intIP := intIP xor (n shl 8);
      ip2 := IntToStr(n);
     
     
      n := intIP;
      ip1 := IntToStr(n);
     
     
      Result := ip1 + '.' + ip2  + '.' + ip3  + '.' + ip4;
    end;
     
     
    //ip地址字符串转整数(没测过)
    function ip2Int(const strIP : string): Int64;
    var
      lst : TStringList;
      i : integer;
    begin
      result := 0;
      lst := TStringList.Create;
      try
        lst.Delimiter := '.';
        lst.DelimitedText := strIP;
     
     
        for i := 0 to lst.Count - 1 do
          result := result + StrToInt64(lst[i]) shl (24 - i * 8);
      finally
        lst.Free;
      end;
    end;
     
     
    procedure TForm3.btn1Click(Sender: TObject);
    var
      Service: JObject;
     
     
      WifiManager: JWifiManager;
      ConnectionInfo: JWifiInfo;
      ScanResults: JList;
      ScanResult: JScanResult;
      I: Integer;
      iIP: Int64;
    begin
      Memo1.Lines.Clear;
     
     
      Service := SharedActivity.getSystemService(TJContext.JavaClass.WIFI_SERVICE);
      WifiManager := TJWifiManager.Wrap((Service as ILocalObject).GetObjectID);
      if not WifiManager.isWifiEnabled then
        Memo1.Lines.Add('Wifi is disabled')
      else
      begin
        ConnectionInfo := WifiManager.getConnectionInfo;
        Memo1.Lines.Add('Connection info');
        Memo1.Lines.Add('  SSID: ' + JStringToString(ConnectionInfo.getSSID));
        Memo1.Lines.Add('  BSSID: ' + JStringToString(ConnectionInfo.getBSSID));
        Memo1.Lines.Add('  IPV4: ' +  int2Ip(ConnectionInfo.getIpAddress));
     
     
        Memo1.Lines.Add('  MAC address: ' + JStringToString(ConnectionInfo.getMacAddress));
        ScanResults := WifiManager.getScanResults;
        for I := 0 to ScanResults.size - 1 do
        begin
          Memo1.Lines.Add('');
          Memo1.Lines.Add('Detected access point ' + IntToStr(I));
          ScanResult := TJScanResult.Wrap((ScanResults.get(I) as ILocalObject).GetObjectID);
          Memo1.Lines.Add('  SSID: ' + JStringToString(ScanResult.SSID));
          Memo1.Lines.Add('  BSSID: ' + JStringToString(ScanResult.BSSID));
          Memo1.Lines.Add('  Capabilities: ' + JStringToString(ScanResult.capabilities));
          Memo1.Lines.Add('  Frequency: ' + IntToStr(ScanResult.frequency) + 'MHz');
          Memo1.Lines.Add('  Signal level: ' + IntToStr(ScanResult.level) + 'dBm');
        end
      end
    end;
     
     
    end.
    ————————————————
    版权声明:本文为CSDN博主「得码刘永锋」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lyf_lyf/java/article/details/48169575
  • 相关阅读:
    jmeter响应结果乱码问题
    JMeter 脚本请求错误 HTTP Status 415 的解决
    使用fiddler进行genymotion安卓虚拟机手机抓包
    Android模拟器Genymotion安装使用教程详解
    java基础-数组
    Qt类继承图
    Linux-磁盘管理小结
    User and User Groups in Linux
    Qt5.3编译错误——call of overloaded ‘max(int int)’is ambiguous
    i++ and ++i efficiency
  • 原文地址:https://www.cnblogs.com/timba1322/p/12681581.html
Copyright © 2011-2022 走看看