我正在尝试显示当前在范围内的特定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
发布评论