2017-10-14 128 views
-1

我想用android studio显示Wifi连接列表。我的手机的wifi设置有2个连接,但我的应用程序没有看到它们。为什么wifi连接数量:0?

在此先感谢

当我打开调试应用程序,我看到这样一句话: 数Wifi连接数:0

那么,为什么它不能看到WiFi连接? 我尝试了无线网络启用时,当它被禁用。

MainActivity.java

import java.util.List; 
import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.net.wifi.ScanResult; 
import android.net.wifi.WifiManager; 
import android.os.Bundle; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

private StringBuilder sb = new StringBuilder(); 
private TextView tv; 
List<ScanResult> scanList; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    tv= (TextView)findViewById(R.id.txtWifiNetworks); 
    getWifiNetworksList(); 
} 

private void getWifiNetworksList(){ 
    IntentFilter filter = new IntentFilter(); 
    filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION); 
    final WifiManager wifiManager = 
      (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);; 
    registerReceiver(new BroadcastReceiver(){ 

     @SuppressLint("UseValueOf") @Override 
     public void onReceive(Context context, Intent intent) { 
      sb = new StringBuilder(); 
      scanList = wifiManager.getScanResults(); 
      sb.append("\n Number Of Wifi connections :" + " " +scanList.size()+"\n\n"); 
      for(int i = 0; i < scanList.size(); i++){ 
       sb.append(new Integer(i+1).toString() + ". "); 
       sb.append((scanList.get(i)).toString()); 
       sb.append("\n\n"); 
      } 

      tv.setText(sb); 
     } 

    },filter); 
    wifiManager.startScan();} 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="hacker.wifi.mywifilist.MainActivity" 
    android:id="@+id/main"> 

    <TextView 
     android:id="@+id/txtWifiNetworks" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true"/> 


</android.support.constraint.ConstraintLayout> 

回答

0

转动装置的位置切换。由于棉花糖是必须的。 请确保您有这些权限(你可能会测试后省略其中的一些,我把它从一个类似的项目我做了):

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
+0

我尝试过,但它不工作。 – Will

+0

请再次确认。 –

+0

感谢您的帮助,但它仍然是一样的。我尝试了所有有关Android工作室无线扫描列表的代码,但直到现在我才看到任何列表。你是否推荐我关于这个问题的任何样本项目?我要疯了。 – Will