结果:

1.必须打开Access wifi state权限,不打开权限会出图二的错误。

相关资料:

http://blog.csdn.net/lyf_lyf/article/category/173576

实例代码:

 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.ScrollBox,
FMX.Memo, FMX.StdCtrls, FMX.Controls.Presentation,
Androidapi.JNI.GraphicsContentViewText,//需要引入
Androidapi.JNIBridge,//需要引入
Androidapi.JNI.Telephony,//需要引入
Androidapi.JNI.JavaTypes,//需要引入
FMX.Helpers.Android,//需要引入
Androidapi.JNI.Net,//需要引入
Androidapi.Helpers;//需要引入 type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.fmx}
{$R *.NmXhdpiPh.fmx ANDROID} //ip地址整数转字符串
function int2Ip(intIP : Int64) : string;
var
n : int64;
ip4, ip3, ip2, ip1: string;
begin
Result := '';
n := intIP shr ;
intIP := intIP xor (n shl );
ip4 := IntToStr(n); n := intIP shr ;
intIP := intIP xor (n shl );
ip3 := IntToStr(n); n := intIP shr ;
intIP := intIP xor (n shl );
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 := ;
lst := TStringList.Create;
try
lst.Delimiter := '.';
lst.DelimitedText := strIP;
for i := to lst.Count - do
result := result + StrToInt64(lst[i]) shl ( - i * );
finally
lst.Free;
end;
end; procedure TForm1.Button1Click(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禁用')
else
begin
ConnectionInfo := WifiManager.getConnectionInfo;
Memo1.Lines.Add('连接信息');
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 := to ScanResults.size - do
begin
Memo1.Lines.Add('');
Memo1.Lines.Add('检测到的接入点 ' + 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.

Android实例-获取安卓手机WIFI信息(XE8+小米2)的更多相关文章

  1. Android实例-MediaPlayer播放音乐和视频(XE8+小米2)

    结果: 1.播放视频需要手动放入MediaPlayerControl1控件,设置MediaPlayerControl1.MediaPlayer := MediaPlayer1; 2.播放声音文件正常, ...

  2. Android实例-监测网络状态及一些事件(XE8+小米2)

    结果: 1.网络连接:是指现在可不可以上网(你非要问我什么是网,我会K你呀的). 2.WIFI网络:是指现在可以上网,用的是不是WIFI网络(如果你打开了WIFI那它会显示正在使用WIFI). 3.移 ...

  3. Android实例-录音与回放(播放MP3)(XE8+小米2)

    结果: 1.增加ActionList中的Action时,需要跳到Master界面,不能在Android4Phonel界面下. 2.如果不打开权限的话,会提示“该设备不支持停止录音操作”(Record ...

  4. Android实例-程序界面内截取屏幕(XE8+小米2)

    结果: 1.只能截取程序界面内的图片. 2.图片有点不清楚,自己设置清楚度. 实例代码: unit Unit1; interface uses System.SysUtils, System.Type ...

  5. Android实例-解决虚拟键盘遮挡问题(XE8+小米2)

    结果: 1.可以自动向上移动,来防遮挡,但同时发现个问题,如果是按硬件返回没有问题,要是点输入法(QQ.百度输入法)上的隐藏就不行了. 2.点击Edit2后出现输入法,点输入法上的隐藏后, 再点Edi ...

  6. Android实例-如何使用系统剪切板(XE8+小米2)

    结果: 发现个问题,就是粘贴时会清除之前的信息. unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, S ...

  7. Android实例-解决启动黑屏问题(XE8+小米2)

    结果: 1.在启动时马上出现图片界面,但在出现程序界面前会有黑屏,大约有0.2秒左右. 实现: 1.建立2个文件:loading.png和styles.xml: ①其中loading.png是启动时替 ...

  8. Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用

    一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了,它的复杂度远远大于纯粹的应用开发.首先必须要考虑的就是集成第三方SDK,支付这块渠道商已经帮你我们做好了,只需要按照文档对 ...

  9. error while obtaining ui hierarchy xml file...用 uiautomatorviewer 获取安卓手机软件页面时报错

    Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't ...

随机推荐

  1. Android 下log的使用总结

    Android 下log的使用总结 一:在源码开发模式下 1:包含头文件: #include <cutils/log.h> 2:定义宏LOG_TAG #define LOG_TAG &qu ...

  2. hive学习笔记——表的基本的操作

    1.hive的数据加载方式 1.1.load data 这中方式一般用于初始化的时候 load data [local] inpath '...' [overwrite] into table t1 ...

  3. apk反编译(3)smali语法

    from http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html Dalvik opcodes Author: Gabor Paller Vx ...

  4. shell bash判断文件或文件夹是否存在

    #shell判断文件夹是否存在 #如果文件夹不存在,创建文件夹 if [ ! -d "/myfolder" ]; then mkdir /myfolder fi #shell判断文 ...

  5. 严重: Catalina.stop: java.net.ConnectException: Connection refused: connect

    原因: 1.连接被拒绝,关闭的时候报错.是不是已经关闭了,你又关闭,他当然找不到了. 2.连接被拒绝有可能是服务端连接数到达最高了 3.服务器拒绝连接,ip地址是否写对,端口号正确与否,网络是否通畅, ...

  6. asp.net清除页面缓存防止同时登录

    //清除页面缓存,防止页面回退重复提交数据 在页面里做以下设置就可以使页面的缓存失效,每次都需要获取新页面. Response.Cache.SetCacheability(System.Web.Htt ...

  7. Share SDK分享

    import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os. ...

  8. error while loading shared libraries: libevent-2.0.so.5解决办法

    安装memcache时,需要建立文件索引或者说文件连接(link),类似windows下的快捷方式 启动服务时出现 error while loading shared libraries: libe ...

  9. UVA 550 Multiplying by Rotation (简单递推)

    题意:有些数字是可以这样的:abcd*k=dabc,例如179487 * 4 = 717948,仅仅将尾数7移动到前面,其他都不用改变位置及大小.这里会给出3个数字b.d.k,分别代表b进制.尾数.第 ...

  10. Android 获取本机WIFI及3G网络IP

    获取本机WIFIprivate String getLocalIpAddress() { WifiManager wifiManager = (WifiManager) getSystemServic ...