Ho richiesto il permesso in Android versione 6.0 - Marshmallow, ma restituisce ancora l'elenco vuoto quando si utilizza getScanResults().bug di Android 6.0? Avere il permesso ma getScanResults() restituisce ancora l'elenco vuoto in Android 6.0
private boolean checkPermission() {
List<String> permissionsList = new ArrayList<String>();
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
permissionsList.add(Manifest.permission.ACCESS_FINE_LOCATION);
}
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
permissionsList.add(Manifest.permission.ACCESS_COARSE_LOCATION);
}
if (permissionsList.size() > 0) {
ActivityCompat.requestPermissions((Activity) mContext, permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
return false;
}
return true;
}
Dopo richiesta l'autorizzazione, poi nel metodo onRequestPermissionsResult, devo ottenere il permesso di ACCESS_FINE_LOCATION e ACCESS_COARSE_LOCATION, ma non riesco ancora il risultato della scansione
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS:
if (permissions.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED ||
(permissions.length == 2 && grantResults[0] == PackageManager.PERMISSION_GRANTED &&
grantResults[1] == PackageManager.PERMISSION_GRANTED)){
List<ScanResult> scanResults = mWifi.getScanResults();
//list is still empty
}
else {
// Permission Denied
Toast.makeText(mContext, getString(R.string.permission_deny), Toast.LENGTH_LONG).show();
}
break;
}
}
Questo è un bug di M Android?
hai chiamato 'mWifi.startScan();'? –
sì, ho chiamato startScan() in onResume: – shaotine
Hai aspettato la trasmissione [SCAN_RESULTS_AVAILABLE_ACTION] (http://developer.android.com/reference/android/net/wifi/WifiManager.html#SCAN_RESULTS_AVAILABLE_ACTION)? –