我正在开发一个需要与我的系统连接的应用程序我通过使用netsh wlan设置托管网络ssid =“”将我的系统转为无线接入点但是我无法在我的机器人中获取此wlan AP的IP地址应用。这是我正在使用的代码...
wifimanager=(WifiManager)getSystemService(Context.WIFI_SERVICE)
List<WifiConfiguration> configs = wifimanager.getConfiguredNetworks();
for (WifiConfiguration config : configs) {
Log.d("Scanner","Configured Networks" + config.toString());
}
wifimanager.startScan();
List<ScanResult>list=wifimanager.getScanResults();
if(list != null && !list.isEmpty()){
for(ScanResult hotspot:list)
{
scanresult.add(hotspot.SSID);
Log.d("Scanner","Found"+scanresult);
}
String message=String.format("%s network Found",list.size());
Toast msg=Toast.makeText(getApplicationContext(), message, 6);
msg.show();
}
else
{
Log.i("Scan","NUll");
Toast msg=Toast.makeText(getApplicationContext(), "No Networks found", 6);
msg.show();
}
Log.d("Scanner","Network Interface section..");
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
{
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses();
enumIpAddr.hasMoreElements();)
{
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress())
{
//Toast.makeText(wifiDemo, TAG + "IP " + inetAddress.getHostAddress().toString(), Toast.LENGTH_LONG).show();
Log.d("Scanner","IP Fromnetwork interface"+inetAddress.getHostAddress().toString());
}
}
}
} catch (SocketException e)
{ e.printStackTrace();
}
final String[]wifiap=scanresult.toArray(new String[scanresult.size()]);
ArrayAdapter<String>adapter=new ArrayAdapter<String>(getApplicationContext(),R.layout.scanresult,wifiap);
setListAdapter(adapter);
ListView listview=getListView();
listview.setTextFilterEnabled(false);
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), parent.getItemAtPosition(position).toString(),
Toast.LENGTH_SHORT).show();
String sid=parent.getItemAtPosition(position).toString();
Log.i("SSID","Value.."+sid);
WifiConfiguration conf=new WifiConfiguration();
conf.SSID="\""+sid+"\"";
conf.priority=1;
conf.status=WifiConfiguration.Status.ENABLED;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
boolean wifion=wifimanager.setWifiEnabled(true);
int res=wifimanager.addNetwork(conf);
boolean enable=wifimanager.enableNetwork(res, true);
if(res<0)
{
Log.d("Scanner","Unable to add configuration for network.."+sid);
}
else
{
Log.d("Scanner","Network Configured.."+res);
}
WifiInfo wifiInfo = wifimanager.getConnectionInfo();
int ipaddress= wifiInfo.getIpAddress();
String ip=String.format("%d.%d.%d.%d", (ipaddress & 0xff),(ipaddress >> 8 & 0xff),(ipaddress >> 16 & 0xff),(ipaddress >> 24 & 0xff));
Log.d("Scanner","IPAddress"+ip);
Log.d("Scanner","Connection Info...."+wifimanager.getConnectionInfo());
boolean pingstatus=wifimanager.pingSupplicant();
Log.d("Scanner","Ping results.."+pingstatus);
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(mWifi.isConnected())
{
Log.d("Scanner","Connection established");
}
if(mWifi.isAvailable()){
Log.d("Scanner","Network Available...");
}
else
{
Log.d("Scanner","Network not available..");
}
String reasn=mWifi.getReason();
Log.d("Scanner","Reason"+reasn);
SupplicantState supState;
supState = wifiInfo.getSupplicantState();
Log.d("Scanner","Supplicant state...>"+supState);
Log.d("Scanner", "MAC Address"+wifiInfo.getMacAddress());
if(enable)
{
Toast status=Toast.makeText(getApplicationContext(), "Connected to"+sid,4);
status.show();
Log.d("Scanner","DHCP info.."+wifimanager.getDhcpInfo());
Log.d("Scanner","Connected to-->"+sid);
/* Intent dbintent= new Intent(getApplicationContext(),dbconnection.class);
dbintent.putExtra("ssid",sid);
startActivity(dbintent);*/
}
else
{
Toast status=Toast.makeText(getApplicationContext(), "Can Not Connect to"+sid,4);
status.show();
}
}
});
}
}