这篇文章主要围绕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 10.0 如何打开Wifi热点
- Android 2.2 wifi热点API
- 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相关的API,对于我这个新手开发者来说,实现基于Wifi热点的文件传输有点困难。现在我想知道如何让接收者的手机打开免密码热点。以便发送方可以连接。谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
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 热点的获取
最近在修改下拉状态栏中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 10.0 如何打开Wifi热点、Android 2.2 wifi热点API、android wifi 热点的获取、Android Wifi热点等更多相关知识的信息可以在本站进行查询。
本文标签: