Android:检查wifi列表中是否有特定的SSID(Android: Check whether specific SSID is available in the wifi list)

编程入门 行业动态 更新时间:2024-10-28 16:24:20
Android:检查wifi列表中是否有特定的SSID(Android: Check whether specific SSID is available in the wifi list)

我正在尝试显示当前在范围内的特定Wi-Fi SSID,显示在我的“活动”中,但没有显示任何内容。 在当前状态下,我获得了连接的SSID,但我想知道SSID是否在范围内,它是否可用且未连接。 此后,此SSID将显示在我的xml文件中。

	public  String getCurrentSsid(Context context) {
		String ssid = null;
		// Check wheather the WIFI is available.
		ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo networkInfo = connManager
				.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

		if (networkInfo.isAvailable()) {
			// get the wifi name
			final WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
			final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
			if(connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())){
				ssid = connectionInfo.getSSID();
				textWifi.setText(ssid);
				
			}
		}
		return ssid;
	} 
  
 

I am trying to display specific Wi-Fi SSID currently in range, displayed in my Activity, but nothing is being displayed. With the current state I am getting the connected SSID but I want to get whether SSID is in the range also it is availabe and not connected. Thereafter, this SSID will be displayed in my xml file.

	public  String getCurrentSsid(Context context) {
		String ssid = null;
		// Check wheather the WIFI is available.
		ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo networkInfo = connManager
				.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

		if (networkInfo.isAvailable()) {
			// get the wifi name
			final WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
			final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
			if(connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())){
				ssid = connectionInfo.getSSID();
				textWifi.setText(ssid);
				
			}
		}
		return ssid;
	} 
  
 

最满意答案

我刚刚测试了你的代码,它对我有用。 它显示当前连接的SSID。

编辑:您的代码显示当前连接的SSID(如果已连接),现在看起来您想要获取当前范围内所有SSID的列表。

确保正确设置AndroidManifest.xml:

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

编辑2:现在很明显你想获得扫描结果并处理它们,我刚刚编写了这个简单的例子:

import android.net.wifi.ScanResult; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import java.util.List; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text = (TextView) this.findViewById(R.id.ScanResults); WifiManager wifiManager = (WifiManager) this.getSystemService(this.WIFI_SERVICE); WifiInfo info = wifiManager.getConnectionInfo(); final List<ScanResult> results = wifiManager.getScanResults(); if (results != null) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < results.size(); i++) { String ssid = results.get(i).SSID; if (ssid.startsWith("sv-")) { buf.append(ssid + "\n"); } } text.setText(buf.toString()); } } @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); } }

在activity_main.xml中:

<TextView android:id="@+id/ScanResults" android:layout_width="wrap_content" android:layout_height="wrap_content" />

I just tested your code and it works for me. It shows the current connected SSID.

Edit: Your code shows the the current connected SSID (if connected), and it now looks like you want to get the list of all SSIDs currently in range.

Make sure you have your AndroidManifest.xml set up correctly:

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

Edit 2: Now that it is clear that you would like to get Scan Results and process them, I just worked out this simple example:

import android.net.wifi.ScanResult; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import java.util.List; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text = (TextView) this.findViewById(R.id.ScanResults); WifiManager wifiManager = (WifiManager) this.getSystemService(this.WIFI_SERVICE); WifiInfo info = wifiManager.getConnectionInfo(); final List<ScanResult> results = wifiManager.getScanResults(); if (results != null) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < results.size(); i++) { String ssid = results.get(i).SSID; if (ssid.startsWith("sv-")) { buf.append(ssid + "\n"); } } text.setText(buf.toString()); } } @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); } }

In activity_main.xml:

<TextView android:id="@+id/ScanResults" android:layout_width="wrap_content" android:layout_height="wrap_content" />

更多推荐

SSID,Context,ssid,显示,电脑培训,计算机培训,IT培训"/> <meta name="descript

本文发布于:2023-07-28 23:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1310096.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:列表中   wifi   Android   SSID   list

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!