一、先把activity_main.xml文件代码贴出来:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.user.wifidemoo.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv1"
/>
</LinearLayout>
二、AndroidMenifest.xml中,加入权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
三、最后是MainActivity.java中的程序:
package com.example.user.wifidemoo;
import android.app.Activity;
import android.bluetooth.le.ScanResult;
import android.net.ConnectivityManager;
import android.net.DhcpInfo;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.SystemClock;
import android.text.format.Formatter;
import android.util.Log;
import android.widget.TextView;
import java.text.DateFormatSymbols;
import java.text.Format;
import java.util.List;
public class MainActivity extends Activity {
public WifiManager wifiManager;
public ConnectivityManager connectManager;
public NetworkInfo netInfo;
public WifiInfo wifiInfo;
public DhcpInfo dhcpInfo;
List<android.net.wifi.ScanResult> list;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(){
@Override
public void run() {
while(true){
SystemClock.sleep(1000);
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
connectManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
netInfo = connectManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
dhcpInfo = wifiManager.getDhcpInfo();
wifiInfo = wifiManager.getConnectionInfo();
list = (List<android.net.wifi.ScanResult>) wifiManager.getScanResults();
wifiInfo.getSSID();
tv1 = (TextView)findViewById(R.id.tv1);
final String wifiProperty = "当前连接WIFI信息如下:" + wifiInfo.getSSID() + '\n' +
"ip:" + FormatString(dhcpInfo.ipAddress) + '\n' +
"mask:" + FormatString(dhcpInfo.netmask) + '\n' +
"netgate:" + FormatString(dhcpInfo.gateway) + '\n' +
"dns:" + FormatString(dhcpInfo.dns1) + '\n' +
"rssi:"+ wifiInfo.getRssi() +'\n' +
DisByRssi(wifiInfo.getRssi());
runOnUiThread(new Runnable() {
@Override
public void run() {
tv1.setText(wifiProperty);
}
});
Log.i("he",wifiProperty);
}
}
public Double DisByRssi(int rssi){
int iRssi = Math.abs(rssi);
double power = (iRssi- 35)/(10*2.1);
return Math.pow(10,power);
}
}.start();
}
public String FormatString(int value){
String strValue ="";
byte[] ary = intToByteArray(value);
for(int i = ary.length-1;i>0;i--){
strValue += (ary[i]& 0xFF);
if(i>0){
strValue +=".";
}
}
return strValue;
}
}