2017-03-09 41 views
0

getScanResults返回空listgetScanResults与Android 6.0返回空列表

测试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

您的应用是否启用了位置权限? Android 6引入了APP权限,这意味着当您安装应用程序时,没有关于权限的问题。在运行时需要权限。但是,如果您检查设置 - >应用程序 - >(您的APP) - >权限和位置权限已关闭,则不允许您获取位置信息。