wifi基本操作

这篇博客主要介绍了WiFi的基本操作,包括权限管理和使用工具类进行操作的相关知识。
摘要由CSDN通过智能技术生成

权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
import android.Manifest;
import android.content.DialogInterface;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
   

    private static final String TAG = "WifiDemo";
    ListView lv;
    WifiManager wifiManager;  //管理wifi
    ArrayAdapter<String> adapter;
    List<String> wifiSSIDs = new ArrayList<>();
    WifiUtil wifiUtil;
    //    WifiInfo             //wifi信息
    //    ScanResult            //扫描结果
    //    WifiConfiguration     //wifi配置 如果需要连接wifi 必须先配置好  加密方式 wifi SSID  password

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        wifiUtil = new WifiUtil(this);
        lv= (ListView) findViewById(R.id.lv);
        //1.WifiManager实例化
        wifiManager= (WifiManager) getSystemService(WIFI_SERVICE);
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, wifiSSIDs);
        lv.setAdapter(adapter);

        //动态权限
        if (Build.VERSION.SDK_INT >= 23) {
            requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
        }

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

                //连接wifi
                ScanResult sr = scanResults.get(position);//获取点击的扫描信息
                final String SSID = sr.SSID;
                WifiConfiguration wifiConfiguration = new WifiConfiguration();
                final int type = wifiUtil.getType(sr.capabilities);
                if (type == 1) {
                    WifiConfiguration config = wifiUtil.createWifiInfo(SSID, "", type);
                    int networkId = wifiManager.addNetwork(config);
                    wifiManager.enableNetwork(networkId, true);
                } else {
                    //有密码
                    final EditText et = new EditText(MainActivity.this);
                    et.setHint("输入wifi密码");
                    new AlertDialog.Builder(Mai
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值