GVKun编程网logo

Android获取周围WIFI热点服务(android获取wifi信息)

29

这篇文章主要围绕Android获取周围WIFI热点服务和android获取wifi信息展开,旨在为您提供一份详细的参考资料。我们将全面介绍Android获取周围WIFI热点服务的优缺点,解答andro

这篇文章主要围绕Android获取周围WIFI热点服务android获取wifi信息展开,旨在为您提供一份详细的参考资料。我们将全面介绍Android获取周围WIFI热点服务的优缺点,解答android获取wifi信息的相关问题,同时也会为您带来Android 10.0 如何打开Wifi热点、Android 2.2 wifi热点API、android wifi 热点的获取、Android Wifi热点的实用方法。

本文目录一览:

Android获取周围WIFI热点服务(android获取wifi信息)

Android获取周围WIFI热点服务(android获取wifi信息)

在实际开发中我们会经常需要获取周围WiFi热点,最近做了这个demo,写出来和大家一起分享一下吧。大体思路呢是这样的,首先Wifimanger获取WiFi服务,然后将结果储存在ArrayList<ScanResult>中,好了,具体内容大家可以直接看代码: 

MainActivity.java: 

public class MainActivity extends AppCompatActivity {

  ArrayList<ScanResult> list;  //存放周围wifi热点对象的列表
  WifiManager wifiManager;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);  //获得系统wifi服务
    list = (ArrayList<ScanResult>)wifiManager.getScanResults();
    sortByLevel(list);
    init();
  }

  private void init(){
    TextView tv1=(TextView)findViewById(R.id.tv1);
    TextView tv2=(TextView)findViewById(R.id.tv2);
    TextView tv3=(TextView)findViewById(R.id.tv3);

    if (list.get(0).SSID != null && list.get(1).SSID != null){
      tv1.setText("信号最强为"+list.get(0).SSID);
      tv2.setText("信号第二位:"+list.get(1).SSID);
      tv3.setText("共有"+list.size()+"个wifi");
    }

  }

  //将搜索到的wifi根据信号强度从强到弱进行排序
  private void sortByLevel(ArrayList<ScanResult> list) {
    for(int i=0;i<list.size();i++)
      for(int j=1;j<list.size();j++)
      {
        if(list.get(i).level<list.get(j).level)  //level属性即为强度
        {
          ScanResult temp = null;
          temp = list.get(i);
          list.set(i,list.get(j));
          list.set(j,temp);
        }
      }
  }

} 

布局文件activity_main.xml:

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

  <TextView
    android:id="@+id/tv1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />
  <TextView
    android:id="@+id/tv2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />
  <TextView
    android:id="@+id/tv3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />
</LinearLayout> 

OK,就是这个样子吧。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

您可能感兴趣的文章:

  • Android便携式热点的开启状态检测和SSID的获取方法
  • Android 连接Wifi和创建Wifi热点的实例
  • android编程实现设置、打开wifi热点共享供他人连接的方法
  • android多行标签热点示例
  • Android获取实时连接热点的设备IP

Android 10.0 如何打开Wifi热点

Android 10.0 如何打开Wifi热点

如何解决Android 10.0 如何打开Wifi热点?

由于Android 10.0禁用了大量与Wifi相关的API,对于我这个新手开发者来说,实现基于Wifi热点的文件传输有点困难。现在我想知道如何让接收者的手机打开免密码热点。以便发送方可以连接。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Android 2.2 wifi热点API

Android 2.2 wifi热点API

我需要在Android 2.2(Froyo)中进行什么API调用才能创建Wifi热点(如“网络共享和便携式热点”设置项所示)。

答案1

小编典典

你可以打电话

private boolean setWifiApEnabled(WifiConfiguration wifiConfig, booleanenabled);

使用反射:)

WifiManager使用反射获取WifiManager声明的方法之后,查找该方法名称setWifiApEnabled并通过WifiManager对象调用它

这些API被标记为@hide,因此当前您不能直接使用它们,但是它们出现在WifiManager的AIDL上,因此可以访问!

一个示例可以是:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);Method[] wmMethods = wifi.getClass().getDeclaredMethods();for(Method method: wmMethods){  if(method.getName().equals("setWifiApEnabled")){    WifiConfiguration netConfig = new WifiConfiguration();    netConfig.SSID = "\"PROVAAP\"";    netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);    netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);    netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);    netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);    netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);    netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);    netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);    netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);    try {      method.invoke(wifi, netConfig,true);    } catch (IllegalArgumentException e) {      e.printStackTrace();    } catch (IllegalAccessException e) {      e.printStackTrace();    } catch (InvocationTargetException e) {      e.printStackTrace();    }  }}

它可以正常工作,但是我无法使用自己的配置更改当前配置,并且获取活动AP的当前WifiConfiguration会将我驱动为空配置。

android wifi 热点的获取

android wifi 热点的获取

   最近在修改下拉状态栏中wifi的设置 就是给wifi 图标增加角标 点击进入wifi列表,从而连接wifi不用进入Setting 里面设置。遇到的问题是在 WifiManager.getScanResults() 竟然返回的的一个空的List 。后查阅才知道,要开启GPS定位才能获取到,不晓得为了google现在这里设计干嘛。为了解决这个问题,想到的就是主动打开GPS 

       if ((Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE,

                Settings.Secure.LOCATION_MODE_OFF) == Settings.Secure.LOCATION_MODE_OFF)) {
            Settings.Secure.putInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE, 1);
        }
    之后在看看有什么好的方法。目测Setting里面没有打开GPS也可以获取到,目前没找到原因

 

原来Google在M版本和L版本处理不同 只需加上

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

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

这两个权限就行啦

Android Wifi热点

Android Wifi热点

请教一个问题:

android开机默认启动wifi热点?

今天关于Android获取周围WIFI热点服务android获取wifi信息的介绍到此结束,谢谢您的阅读,有关Android 10.0 如何打开Wifi热点、Android 2.2 wifi热点API、android wifi 热点的获取、Android Wifi热点等更多相关知识的信息可以在本站进行查询。

本文标签: