0

Я использую в мое приложение Wifimanager.updateNetwork(wifiConfiguration); и она работает на KitKat, Jellybean & ICS, но теперь в Зефир он постоянно возвращается -1, даже если wifiConfiguration не равно нулю и имеет действительный NETWORKID. Кто-нибудь знает возможные причины этого? Что-то изменилось в Marshmallow по этому поводу?WifiManager.updateNetwork не работает в Зефир

ответ

2

Согласно Android 6.0 Wi-Fi and Networking Changes,

Ваши приложения теперь могут изменить состояние WifiConfiguration только объекты, если вы создали эти объекты. Вам не разрешено изменять или удалять объекты WifiConfiguration, созданные пользователем или другими приложениями.

+0

Любая идея о том, как реализовать приоритет WiFi с использованием новых API,? – CVA

+0

или как отключить сеть, чтобы система не подключалась автоматически к ней? В принципе вы можете отключиться только сейчас, но это не заставит систему НЕ пытаться повторно подключиться. Так что да, приложения могут в значительной степени не разъединяться, если они не отключат сеть ... – leRobot

0
final private int REQUEST_CODE_ASK_PERMISSIONS = 123;  


if(Build.VERSION.SDK_INT < 23){ 
    //your code here 
}else { 
    requestContactPermission(); 
} 



private void requestContactPermission() { 

int hasContactPermission =ActivityCompat.checkSelfPermission(context,Manifest.permission.ACCESS_WIFI_STATE); 

if(hasContactPermission != PackageManager.PERMISSION_GRANTED) { 
    ActivityCompat.requestPermissions(Context, new String[]{Manifest.permission.ACCESS_WIFI_STATE,Manifest.permission.ACCESS_WIFI_STATE}, PERMISSION_REQUEST_CODE); 
}else { 
    //Toast.makeText(AddContactsActivity.this, "Wifi Permission is already granted", Toast.LENGTH_LONG).show(); 
    } 
} 


@Override 
public void onRequestPermissionsResult(int requestCode, String[]  permissions, int[] grantResults) { 
switch (requestCode) { 
    case REQUEST_CODE_ASK_PERMISSIONS: 
     // Check if the only required permission has been granted 
     if (grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

      Log.i("Permission", "Wifi permission has now been granted. Showing result."); 
      Toast.makeText(this," Wifi Permission is Granted",Toast.LENGTH_SHORT).show(); 
     } else { 
      Log.i("Permission", "Wifi permission was NOT granted."); 
      } 

     break; 

    } 
}