androd 获得wifi列表

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yanlei.wifi" >
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 在SDCard中创建与删除文件权限 -->

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

    <!-- 连接<a href="http://www.it165.net/news/nhlw/" target="_blank" class="keylink">互联网</a>Internet权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- GPS定位权限 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

activity_main.xml

<RelativeLayout 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=".WifiListActivity" >

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</RelativeLayout>  

item_wifi_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/imageView"
        android:layout_marginBottom="14dp"
        android:layout_toRightOf="@+id/imageView"
        android:text="TextView" />

    <TextView
        android:id="@+id/signal_strenth"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView"
        android:layout_alignBottom="@+id/textView"
        android:layout_alignParentRight="true"
        android:text="TextView" />

</RelativeLayout>

MainActivity.java

package com.example.yanlei.wifi;

import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

public class MainActivity extends AppCompatActivity {

    private WifiManager wifiManager;
    List<ScanResult> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }

    private void init() {
        wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        openWifi();
        list = wifiManager.getScanResults();
        ListView listView = (ListView) findViewById(R.id.listView);
        if (list == null) {
            Toast.makeText(this, "wifi未打开!", Toast.LENGTH_LONG).show();
        }else {
            listView.setAdapter(new MyAdapter(this,list));
        }

    }

    /**
     *  打开WIFI
     */
    private void openWifi() {
        if (!wifiManager.isWifiEnabled()) {
            wifiManager.setWifiEnabled(true);
        }

    }

    public class MyAdapter extends BaseAdapter {

        LayoutInflater inflater;
        List<ScanResult> list;
        public MyAdapter(Context context, List<ScanResult> list) {
            // TODO Auto-generated constructor stub
            this.inflater = LayoutInflater.from(context);
            this.list = list;
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            View view = null;
            view = inflater.inflate(R.layout.item_wifi_list, null);
            ScanResult scanResult = list.get(position);
            TextView textView = (TextView) view.findViewById(R.id.textView);
            textView.setText(scanResult.SSID);
            TextView signalStrenth = (TextView) view.findViewById(R.id.signal_strenth);
            signalStrenth.setText(String.valueOf(Math.abs(scanResult.level)));
            ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
            //判断信号强度,显示对应的指示图标
            if (Math.abs(scanResult.level) > 100) {
                imageView.setImageDrawable(getResources().getDrawable(R.drawable.a0));
            } else if (Math.abs(scanResult.level) > 80) {
                imageView.setImageDrawable(getResources().getDrawable(R.drawable.a1));
            } else if (Math.abs(scanResult.level) > 70) {
                imageView.setImageDrawable(getResources().getDrawable(R.drawable.a0));
            } else if (Math.abs(scanResult.level) > 60) {
                imageView.setImageDrawable(getResources().getDrawable(R.drawable.a1));
            } else if (Math.abs(scanResult.level) > 50) {
                imageView.setImageDrawable(getResources().getDrawable(R.drawable.a0));
            } else {
                imageView.setImageDrawable(getResources().getDrawable(R.drawable.a1));
            }
            return view;
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

来自:android wifi讲解 wifi列表显示

时间: 2024-11-08 14:03:06

androd 获得wifi列表的相关文章

iOS 获取 WiFi 列表

IOS 获取 WIFi列表有2016 /11 / 10 之后就不用申请权限了  Apple 官方邮件回复: Thank you for requesting information about the Network Extension framework. Please note that as of November 10, 2016 this process is not required for developers who wish to use App Proxy, Content

Android wifi属性简介 及 wifi信息获取(wifi列表、配置信息、热点信息)

Android wifi对象属性及简易Demo 本章介绍Android开发中WiFi热点和WiFi属性的获取,介绍WiFi的名称.状态等属性以及获取周围WiFi热点的方法. 一.怎样获取wifi对象并进行操作 要操作 WIFI 设备,需要先获取 Context.getSystemService(Context.WIFI_SERVICE)获取WifiManager对象,并通过这个对象来管理WIFI设备. addNetwork(WifiConfiguration config) 添加一个config

Wifi 定位原理及 iOS Wifi 列表获取

Wifi 定位原理及 iOS Wifi 列表获取 对于大家来说,Wifi 应该是一个很熟悉的词了,我们每天都可能在使用 Wifi 热点.Wifi 除了能给我们提供热点之外同时还有定位的作用, 现在移动设备的对用户的隐私保护是越来越严格了,就如定位功能,必须要经过设备用户的授权才能使用 Location 给这台设备定位.这些严格的隐私政策对用户起到到保护作用,但对开发人员却是一种阻碍,在产品强需求的情况下用户是会授权的,如地图类应用,但是另外一些没有对定位强需求的产品,用户可能就不会给你授权了,这

获取WIFI列表,在旧手机上运行就没有问题,在新手机上就怎么也获取不到WIFI列表,长度一直为0,还不报异常,很疑惑。

新手机获取不到WIFI列表的原因: 获取不到列表首先要考虑的是6.0动态权限的问题 解决方案: (1) 将SDK版本改为23以下,例如22,但是这样就要放弃SDK的新特性 (2) 使用动态授权,接收用户授权的信息,根据用户授权的信息作出操作

Android 6.0以上获取Wifi列表问题

在已经打开 Wifi 的情况下获取 Wifi 时,wifiManager.getScanResults() 方法始终返回的是null.因为当时是在网上查询资料敲的代码,多找了几份资料后,看到代码都是一样的,反复确认自己有没有遗漏或者写错.甚至怀疑人生!索性克服心理恐惧点开源码,结果却找到了答案: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * Return the results of the latest access point scan. *

Qt for android 获取 Wifi 列表

Qt 做 Android 开发,有时候需要网络信息,这个例子是获取手机搜索到的信号较强的 WIFI 信号的列表.过程中需要用到 JNI 的知识.另外,例子比较简单,如果有需要这个的,可以自行修改. 程序分为两个部分,一个是 JAVA 程序的编写,一个是 Qt 主程序的编写,至于对 AndroidManifest.xml 文件的修改部分我就不加缀述了. JAVA 程序部分: package com.wifi; import android.net.wifi.ScanResult; import a

Android常用控件之下拉刷新Wifi列表

有些列表信息需要手动去更新,此时比较常用的就是下拉刷新列表,在这里就使用下拉列表来刷新当前Wifi信息 目录结构 界面               关键代码 下拉列表类 package com.example.dropdownrefresh.ui; import java.text.SimpleDateFormat; import java.util.Date; import com.example.dropdownrefresh.R; import android.content.Contex

ios开发 如何在应用内获取当前周围wifi列表和强度 并实现在应用内控制wifi开关

通过官方的API 可以获取到wifi的信息,实现代码: 1 2 3 4 5 6 7 8 9 10 11 - (id)fetchSSIDInfo {       NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();       NSLog(@"Supported interfaces: %@", ifs);       id info = nil;       for (NSString *ifnam in i

获取wifi列表

- (id)fetchSSIDInfo {       NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();       NSLog(@"Supported interfaces: %@", ifs);       id info = nil;       for (NSString *ifnam in ifs) {           info = (__bridge_transfer id)CNCopyC