getScanResults
返回空list
。
在启用了位置的Android 6.0
手机上进行了测试。有什么我错过/错误?
以下是我的代码:
public class MainActivity extends AppCompatActivity {
WifiManager mainWifiObj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainWifiObj = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiScanReceiver wifiReciever = new WifiScanReceiver();
registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
}
public void onButClicked(View view){
mainWifiObj.startScan();
}
class WifiScanReceiver extends BroadcastReceiver {
public void onReceive(Context c, Intent intent) {
List<ScanResult> wifiList = mainWifiObj.getScanResults();
String text = String.valueOf(wifiList.size());
Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();
}
}
}
我也按照其他帖子的建议包含了许可。
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-feature android:name="android.hardware.location.gps" />
答案 0 :(得分:0)
您的应用是否启用了位置权限? Android 6引入了inPTP权限,这意味着在安装应用程序时,对权限毫无疑问。权限在运行时需要时请求。但是,如果您选中设置 - &gt;应用程序 - &gt; (你的APP) - &gt;权限且位置权限已关闭,则不允许您获取位置。