2017-10-14 4 views
-1

android studio에서 Wifi 연결 목록을 표시하고 싶습니다. 내 휴대 전화의 Wi-Fi 설정에 2 개의 연결이 있지만 내 애플리케이션에서 해당 연결을 볼 수 없습니다. 왜 와이파이 연결 수 : 0?

사전

에서

덕분에 나는이 문장을 볼 수 디버그 응용 프로그램을 열 때 : 와이파이 연결의 수 : 0

가 왜 그것은 와이파이 연결을 볼 수없는 이유는 무엇입니까? Wi-Fi가 사용 설정되어 있고 사용 중지 된 경우 시도했습니다.

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

도움에 감사하지만 여전히 동일합니다. 나는 wifi 스캔 목록에 관한 모든 코드를 android studio 용으로 시도했지만 지금까지는 어떤 목록도 볼 수 없었다. 이 문제에 관해 샘플 프로젝트를 추천 해 주시겠습니까? 나는 미쳐 가고있다. – Will