Wifi2Activity.java
package wifi2.com; import java.util.ArrayList; import java.util.List; import wifi2.com.WifiConnect.WifiCipherType; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ScrollView; import android.widget.TextView; import android.widget.Toast; public class Wifi2Activity extends Activity{ // 右侧滚动条按钮 private Button connect; private TextView Tsid; private TextView Tpwd; private String sid; private String pwd; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); connect = (Button) findViewById(R.id.connect); Tsid = (TextView) findViewById(R.id.sid); Tpwd = (TextView) findViewById(R.id.pwd); connect.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub sid = Tsid.getText().toString(); pwd = Tpwd.getText().toString(); //WifiAdmin wifiAdmin = new WifiAdmin(Wifi2Activity.this); WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiConfiguration wc = new WifiConfiguration(); wc.SSID = "\""+sid+"\""; //Milliwave Tech //判断并开启 wifi if (!wifi.isWifiEnabled()) { wifi.setWifiEnabled(true); } //\\ //检查是否已经存在相同ssid List<WifiConfiguration> list = wifi.getConfiguredNetworks(); for( WifiConfiguration i : list ) { if(i.SSID != null && i.SSID.equals("\"" + sid + "\"")) { //连接 wifi.disconnect(); //not in OP wifi.enableNetwork(i.networkId, true); wifi.reconnect(); //not in OP //\\ //删除 //wifi.removeNetwork(i.networkId); break; } } //\\ //-- 是否是开放式的不用密码------------------ //如果有密码 //wc.preSharedKey = "\""+pwd+"\""; // //wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); //如果是开发式的没有密码的 wc.wepKeys[0] = ""; wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); wc.wepTxKeyIndex = 0; //-- ============================== wc.hiddenSSID = true; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); // TYPE = WIFICIPHER_WEP,WIFICIPHER_WPA, WIFICIPHER_NOPASS, WIFICIPHER_INVALID //wifi.saveConfiguration(); int res = wifi.addNetwork(wc); Toast.makeText(Wifi2Activity.this, "add Network returned " + res, Toast.LENGTH_LONG).show(); boolean b = wifi.enableNetwork(res, true); Toast.makeText(Wifi2Activity.this, "enableNetwork returned " + b, Toast.LENGTH_LONG).show(); //wifi.removeNetwork(addNetId); 移除指定WIFInetid //wifiAdmin.AddNetwork(); } }); } }
main.xml 布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="SID" /> <EditText android:id="@+id/sid" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="PassWord" /> <EditText android:id="@+id/pwd" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/connect" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="连接Wifi" /> </LinearLayout>
判断 wifi 连接是否可用
public boolean isWifiConnect() { ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); return mWifi.isConnected(); }
获取 android 的 ip
public String getLocalIpAddress() { 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()) { return inetAddress.getHostAddress().toString(); } } } } catch (SocketException ex) { } return null; }
enableNetwork 后要做循环 处理 待 配置好 所有WIFI 信息
for (int i = 0; i < 6; i++) { if(isWifiConnect() == false || getLocalIpAddress() == null || getLocalIpAddress() == ""){ sleep(2000); } }
或者判断当前 WIFI 的 SSIWifiInfo info = wifi.getConnectionInfo();
String ssid = info.getSSID(); if(!ssid.contains("BroadlinkProv")){ cNewstatus = 0; }
D
如果网络类型 只是 WPA
wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
获取IP,MASK,DNS等 信息
package t3.com; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.widget.TextView; import android.net.*; import android.net.wifi.WifiManager; import android.text.format.Formatter; public class T3Activity extends Activity { public String s_dns1 ; public String s_dns2; public String s_gateway; public String s_ipAddress; public String s_leaseDuration; public String s_netmask; public String s_serverAddress; TextView info; DhcpInfo d; WifiManager wifii; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); wifii= (WifiManager) getSystemService(Context.WIFI_SERVICE); d=wifii.getDhcpInfo(); s_dns1="DNS 1: "+String.valueOf(d.dns1); s_dns2="DNS 2: "+String.valueOf(d.dns2); s_gateway="Default Gateway: "+String.valueOf(d.gateway); // Formatter.formatIpAddress(d.ipAddress) 方法是将 返回的INT 型 转为 IP 格式 s_ipAddress="IP Address: "+String.valueOf(Formatter.formatIpAddress(d.ipAddress)); //本地IP s_leaseDuration="Lease Time: "+String.valueOf(d.leaseDuration); s_netmask="Subnet Mask: "+String.valueOf(Formatter.formatIpAddress(d.netmask)); //本地mask s_serverAddress="Server IP: "+String.valueOf(d.serverAddress); //dispaly them info= (TextView) findViewById(R.id.tv); info.setText("Network Info\n"+s_dns1+"\n"+s_dns2+"\n"+s_gateway+"\n"+s_ipAddress+"\n"+s_leaseDuration+"\n"+s_netmask+"\n"+s_serverAddress); } }
获取MAC 地址
public String getLocalMacAddress() { WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress(); }
其中 wifiinfo , getConnectionInfo()
wifiinfo.getBSSID();
wifiinfo.getSSID();
wifiinfo.getIpAddress();获取IP地址。
wifiinfo.getMacAddress();获取MAC地址。
wifiinfo.getNetworkId();获取网络ID。
wifiinfo.getLinkSpeed();获取连接速度,可以让用户获知这一信息。
wifiinfo.getRssi(); 获取RSSI,RSSI就是接受信号强度指示。在这可以直 接和华为提供的Wi-Fi信号阈值进行比较来提供给用户,让用户对网络或地理位置做出调整来获得最好的连接效果。
这里得到信号强度就靠wifiinfo.getRssi(); 这个方法。
** 检查网络是否连接
package wifi3.com; import android.app.Activity; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.widget.Toast; public class Wifi3Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ConnectivityManager cm=(ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info=cm.getActiveNetworkInfo(); if(info!=null&&info.isConnected()) { Toast.makeText(Wifi3Activity.this, "可以上网", Toast.LENGTH_LONG).show(); }else{ Toast.makeText(Wifi3Activity.this, "不能上网", Toast.LENGTH_LONG).show(); } } }
给权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
开启关闭 WIFI
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 3·开启、关闭wifi if (wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(false); } else { wifiManager.setWifiEnabled(true); }
获取网关地址
private static WifiManager wifiManager; private static DhcpInfo dhcpInfo; private static WifiInfo wifiInfo; //获取网关 public static String getGateWay(Context context){ wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); dhcpInfo = wifiManager.getDhcpInfo(); //dhcpInfo获取的是最后一次成功的相关信息,包括网关、ip等 return Formatter.formatIpAddress(dhcpInfo.gateway); }
** 获取 当前 连接WIFI NET ID 的 信息包括 加密方式 等
WifiInfo info = wifi.getConnectionInfo(); List<WifiConfiguration> configs = null; configs = wifi.getConfiguredNetworks(); Log.d("log2", "[[[[[[[[[[[[[[[[[[[[[["+configs.get(info.getNetworkId())+"]]]]]]]]]]]]]]]]]]]]]]]]]]");输出如下 字符串
相关推荐
《基于Android的WiFi文件传输系统的设计与实现》 在当今移动设备高度普及的时代,文件分享已经成为日常生活和工作中不可或缺的一部分。Android作为全球最广泛使用的智能手机操作系统,其应用市场中充斥着各种文件...
E4A支持多种Android API,包括网络通信API,这使得它能与各种硬件设备进行数据交换,例如通过WiFi连接的单片机。 单片机,也称为微控制器,是一种集成化的微型计算机,主要用于控制电子设备。在本案例中,单片机...
4. 右键单击已连接到Internet的网络连接,选择“属性”->“共享”,允许虚拟WiFi连接。 5. 如果遇到错误0x80004005,可能需要启用“Windows Firewall”服务。 6. 使用命令`netsh wlan start hostednetwork`启动虚拟...
回到“网络连接”窗口,右键点击空白处,选择“新建连接”。在向导中,选择“创建自定义连接”,然后选择“手动设置我的互联网连接”。下一步,选择“不连接到Internet,只建立网络连接”。在接下来的步骤中,输入你...
在Android平台上,开发人员可以利用系统提供的API来创建并管理WiFi热点,以便让其他设备连接并共享网络。本文将深入探讨如何通过编程实现这一功能,包括设置和打开WiFi热点。 首先,要创建一个WiFi热点,我们需要...
一个超赞的分享电脑无线网卡的工具,大家可能都知道,使用电脑新建一个无线,是在手机的wifi中无法查到的,我们通常都会使用复杂的工具来完成这个问题如:connectify等,但是工具十分复杂并且跟电脑性能有一定关系,...
【DELPHI开发Android连接SQL数据库应用系统讲解】 在当今移动设备盛行的时代,利用DELPHI进行Android应用程序的开发,连接SQL数据库以实现数据的存储和处理,是一种常见的技术实践。本文主要介绍了如何使用DELPHI ...
- **Android中的P2P实现**:Android系统提供了一个名为`WifiDirect`的框架,它支持设备之间的直接连接,创建P2P网络,实现高速的数据传输。 2. **JavaApk源码说明.txt** - 这个文件可能包含对源代码的详细解释,...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
WIFI实现Android手机和笔记本电脑之间文件互传 WI-FI是一种非常流行的无线网络技术,目前几乎所有的笔记本电脑和Android手机都支持WI-FI功能。通过WI-FI,我们可以实现Android手机和笔记本电脑之间的文件互传,不再...
它内置了WebKit浏览器,提供多种连接选项,如WiFi、蓝牙和无线数据传输。此外,Android还支持与Google地图集成,提供基于位置的服务和硬件支持,如GPS和加速计(视具体设备而定)。 Android应用程序的架构是多层次...
2. 进入设置->无线和网络->移动网络设置->接入点名称,新建一个接入点,名称为 USB 网络(可以为任意名称),然后保存并启用。 3. 进入设置->无线和网络,点击“移动网络”进行连接,这个时候可以看到最底下的 USB ...
然后,配置网络连接,选择合适的网络模式,例如 WiFi 或以太网。 五、项目的整合和指令的总结 在安装完成 Android X86 系统之后,我们需要将项目整合到一起,并总结相关的指令。例如,我们可以使用 ADB 工具来管理...
1. **步骤一**:通过“File -> New -> Project”菜单新建一个Android项目。 2. **步骤二**:填写项目的详细参数。 - **Project Name**:项目文件夹名称。 - **Package Name**:遵循Java命名规则的包名,建议使用...
3. **配置拨号参数**:在新建连接的设置中,选择“拨号”类型,并指定刚才配置好的Modem。 **第四步:拨号上网** 1. **建立连接**:打开新建的拨号连接,通常会有一个默认的名称如“宽带连接”。在用户名和密码...
4. **网络共享**:将已连接的互联网连接共享到新建的热点网络,这可能需要调整网络共享设置。 5. **安全考虑**:启用WPA2或更高级别的加密以保护网络,防止未经授权的访问。 6. **性能优化**:调整热点的发射功率...
今天,我们主要介绍的是一种方法,可以使用Android手机查看并操作Windows 7电脑上共享的文件,而无需通过数据线连接或互联网。为了实现这一功能,我们需要在电脑上创建WiFi热点,然后通过手机连接到这个热点,并利用...
在Windows操作系统中,Android开发者工具包(SDK)中的ADB(Android Debug Bridge)是一个强大的命令行工具,用于与连接到电脑的Android设备进行通信。本文将详细介绍ADB在Windows下的使用,包括如何配置CMD(命令...
- **创建项目**: 在IDE中选择新建Android项目,配置项目的基本信息。 - **设计界面**: 使用XML文件来设计用户界面。 - **运行程序**: 在模拟器或真实设备上运行程序进行测试。 #### 四、Android核心物件与程序构架 ...