我尝试详细了解所有可用的wifi,但BroadcastReceiver
不会调用扫描结果。
码
活动
wifiStatusActivity extends AppCompatActivity {
WifiManager wifi;
List<ScanResult> results;
/* Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled() == false) {
Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled",
Toast.LENGTH_LONG).show();
wifi.setWifiEnabled(true);
}
wifi.startScan();
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent intent) {
log.i("LOG","Scan Complete");
}
}, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
}
清单
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
任何建议......!
答案 0 :(得分:0)
我找到答案。
1)需要添加两个新权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
2)我不知道原因,但在我的测试设备Huawei honor P9 lite
位置必须处于活动状态。