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的时候,没有权限问题。在运行时需要时请求权限。但是如果你检查 设置 -> 应用程序 -> (你的应用程序) -> 权限 并且位置权限是关闭的,那么你就不能获取位置。
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的时候,没有权限问题。在运行时需要时请求权限。但是如果你检查 设置 -> 应用程序 -> (你的应用程序) -> 权限 并且位置权限是关闭的,那么你就不能获取位置。