2016-06-22 7 views
0

wifi APをスキャンし、リストビューでSSID、BSSID、Signal Strengthなどの簡単なAndroidアプリケーションを作成しようとしています。Androidアプリケーションでwifi apsをスキャンしてリストビューで表示する

これはあまりにも難しい作業ではないかもしれませんが、私はAndroid開発には非常に新しいので問題があります。

私はこれらの基本的な作業を行うコードを書いています。しかし、どういうわけかそれは結果を表示しません。エラーも表示されません。それを修正して機能させるのを助けてくれますか?

public class MainActivity extends AppCompatActivity implements View.OnClickListener, CompoundButton.OnCheckedChangeListener{ 

// Declare View variables 
private Button mRefreshButton; 
private Switch mWifiSwitch; 
private ListView mAPListView; 
private List<ScanResult> mWifiList; 
private List<String> mListOfProviders; 
private ListAdapter mAdapter; 
private WifiManager mWifiManager; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mListOfProviders = new ArrayList<String>(); 
    mAPListView = (ListView) findViewById(R.id.APListView); 
    mRefreshButton = (Button) findViewById(R.id.refreshButton); 
    mWifiSwitch = (Switch) findViewById(R.id.WiFiSwitch); 
    mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 

    boolean wasEnabled = mWifiManager.isWifiEnabled(); 
    if (wasEnabled){ 
     mWifiSwitch.setChecked(true); 
    } 
    mWifiSwitch.setOnCheckedChangeListener(this); 

    mWifiManager.startScan(); 
    mWifiList = mWifiManager.getScanResults(); 

    for (ScanResult result : mWifiList) { 
     mListOfProviders.add(result.SSID); //This will add the SSID of the connection 
    } 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, mListOfProviders); 
    mAPListView.setAdapter(adapter); 

} 


@Override 
public void onClick(View view) 
{ 

} 

@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    if (isChecked){ 
     mWifiManager.setWifiEnabled(true); 
    } 
    else { 
     mWifiManager.setWifiEnabled(false); 
    } 
} 
} 

答えて

0

マニフェストに権限を追加してみます。

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

すでに行っています。権限の問題以外に何か間違ったことがありますか?私は考えていない..あなたの助けをありがとう! – Jaeyong

+0

おそらく、あなたはstartScan()を削除することができます。私はstartScanなしでscanResultsを得ることができます。または、startScan()を呼び出した後に遅延を追加することもできます。 – ekilic

+0

実際には許可の問題でした。私は現在マーシュ・マロー・バージョンを使用しています。 wifi信号の結果を得ることに関連する問題があることを知りました。このバージョンからは、Wi-Fiアクセス許可だけでなく、ロケーション許可も必要です。ご協力ありがとうございました! – Jaeyong

関連する問題