android wifi开发

之前查阅的一些总结,和大家分享一下。 

有关于AP热点开发(wifi发热点开发)的总结请看: http://blog.csdn.net/error/404.html?from=http%3a%2f%2fblog.csdn.net%2fguang_liang_%2farticle%2fdetails%2f55224675

 

public class Wifi_WifiManager {
    private Context mContext;
    private android.net.wifi.WifiManager wifiManager ;
    public static boolean isInOpenWifi=false;

    public Wifi_WifiManager(Context context){
        this.mContext=context;
        wifiManager=(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    }

    /**
     * 判断wifi是否打开
     * @return
     */
    public boolean isWifiActive(){
        ConnectivityManager mConnectivity=(ConnectivityManager)
                mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (mConnectivity!=null){
            NetworkInfo[] infos=mConnectivity.getAllNetworkInfo();
            if (infos !=null){
                for (NetworkInfo ni:infos){
                    if ("WIFI".equals(ni.getTypeName())&&ni.isConnected())
                        return true;
                }
            }
        }
        return false;
    }

    /**
     * 打开wifi
     */
    public void openWifi(){
        if (!isWifiActive())
            wifiManager.setWifiEnabled(true);
    }

    /**
     * 关闭wifi
     */
    public void closeWifi(){
        if (isWifiActive())
            wifiManager.setWifiEnabled(false);
    }

    /**
     * 记录进入软件时的wifi,
     * 若开启,离开软件时开启wifi
     */
    public void InApp_isOpenWifi(){
        if (isWifiActive())
            isInOpenWifi = true;
    }

    /**
     * 获得热点手机IP地址
     * @return ip
     */
    public String getIp(){
        DhcpInfo info=wifiManager.getDhcpInfo();
        int iii=info.serverAddress;
        String ip=intToIp(iii);
        return ip;
    }

    /**
     * 获得ip地址算法
     * @param i
     * @return IP
     */
    private String intToIp(int i){
        return (i & 0xFF) + "." + ((i >> 8) & 0xFF) + "." + ((i >> 16) & 0xFF) + "." + ((i >> 24) & 0xFF);
    }

}


 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wifi的操作。 要实现这个Android wifi开发程序,我们需要使用以下几个类: 1. WifiManager:用于管理wifi连接。 2. WifiInfo:用于获取当前连接的wifi信息。 3. WifiConfiguration:用于设置wifi连接的配置参数。 4. WifiScan:用于扫描周围的wifi。 下面是一个示例代码,展示如何使用这些类来实现wifi的扫描、连接、断开操作: ``` public class MainActivity extends AppCompatActivity { private WifiManager wifiManager; private WifiScanReceiver wifiScanReceiver; private List<ScanResult> wifiList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); wifiScanReceiver = new WifiScanReceiver(); registerReceiver(wifiScanReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); if(wifiManager.isWifiEnabled()){ wifiManager.startScan(); Log.d("WIFI", "Started Scanning"); }else{ Toast.makeText(getApplicationContext(), "WiFi is disabled.. Please enable it", Toast.LENGTH_LONG).show(); wifiManager.setWifiEnabled(true); } } public void connectToWifi(String ssid, String password){ WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = String.format("\"%s\"", ssid); wifiConfig.preSharedKey = String.format("\"%s\"", password); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); int networkId = wifiManager.addNetwork(wifiConfig); wifiManager.disconnect(); wifiManager.enableNetwork(networkId, true); wifiManager.reconnect(); } public void disconnectFromWifi(){ WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); wifiManager.disconnect(); } private class WifiScanReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { wifiList = wifiManager.getScanResults(); Log.d("WIFI", "Scan Result: " + wifiList.toString()); } } } ``` 在这个示例代码中,我们首先获取了WIFI_SERVICE实例,然后注册了一个WifiScanReceiver来接收wifi扫描的结果。 在onCreate()方法中,我们首先检查wifi是否已经启用。如果已经启用,则调用wifiManager.startScan()方法来启动扫描,并在Logcat中输出“Started Scanning”的消息。 如果wifi未启用,则我们会弹出一条Toast消息来提示用户启用wifi,然后调用wifiManager.setWifiEnabled(true)方法来启用wifi。 接下来,我们定义了connectToWifi()方法和disconnectFromWifi()方法来分别连接和断开wifi。 在connectToWifi()方法中,我们首先创建了一个WifiConfiguration对象,并设置其SSID和preSharedKey属性为连接的wifi名称和密码。然后,我们调用wifiManager.addNetwork(wifiConfig)方法来添加一个新的wifi连接配置,并获取新添加的连接的networkId。接着,我们调用wifiManager.disconnect()方法来断开当前连接的wifi,并调用wifiManager.enableNetwork(networkId, true)方法来激活新添加的连接配置。最后,我们调用wifiManager.reconnect()方法来连接到新添加的wifi网络。 在disconnectFromWifi()方法中,我们只需要调用wifiManager.disconnect()方法即可断开当前连接的wifi。 最后,我们通过定义一个WifiScanReceiver类来接收wifi扫描的结果,并在Logcat中输出扫描结果。当扫描结果更新时,系统会自动调用WifiScanReceiver的onReceive()方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值