如何获得热点网络并在android列表中显示

时间:2017-06-19 05:02:10

标签: android

我正在制作一款Android游戏,其中用户可以使用热点连接玩游戏,例如分享应用程序使用热点连接两个用户。我在谷歌搜索但他们只显示wifi网络列表但我只想显示可用在附近的热点。请帮助我们。我在三天内陷入困境。

1 个答案:

答案 0 :(得分:0)

您需要创建一个BroadcastReceiver来侦听Wifi扫描结果:

private final BroadcastReceiver mWifiScanReceiver = new BroadcastReceiver() { @Override public void onReceive(Context c, Intent intent) { if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { List<ScanResult> mScanResults = mWifiManager.getScanResults(); // add your logic here } } }

onCreate()中,您将分配mWifiManager并启动扫描:

mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
registerReceiver(mWifiScanReceiver,
new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mWifiManager.startScan();
只有拥有适当的权限,getScanResults()才会返回数据。为此,请将以下两行之一添加到AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

另请注意,在API 23+中,必须在运行时请求权限。 (对于实验室环境,您还可以在“设置”中手动授予权限,而不需要编码,但不建议最终用户应用。)

请注意,每次有新的扫描结果可用时,处理扫描结果的代码都会运行,从而更新结果。