Android 6.0的getScanResults返回空列表

时间:2017-03-09 10:46:01

标签: android android-permissions android-wifi

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

1 个答案:

答案 0 :(得分:0)

您的应用是否启用了位置权限? Android 6引入了inPTP权限,这意味着在安装应用程序时,对权限毫无疑问。权限在运行时需要时请求。但是,如果您选中设置 - &gt;应用程序 - &gt; (你的APP) - &gt;权限且位置权限已关闭,则不允许您获取位置。