getScanResults Android 6.0 returns 空列表

getScanResults with Android 6.0 returns empty List

getScanResults return 空 list

已在 Android 6.0 phone 上测试并启用位置。有什么我miss/error吗? 以下是我的代码:

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" />

您的应用是否开启了定位权限? Android6 引入了inAPP权限,就是说你在安装app的时候,没有权限问题。在运行时需要时请求权限。但是如果你检查 设置 -> 应用程序 -> (你的应用程序) -> 权限 并且位置权限是关闭的,那么你就不能获取位置。