My Android 7.1, I cannot turnon hotspot.
If i click switch to turn on then It ok
My code to turn on that: (similar example code in SO)
Get wifi config
public WifiConfiguration getWifiApConfiguration(Context context) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
try {
Method method = wifiManager.getClass().getMethod("getWifiApConfiguration");
return (WifiConfiguration) method.invoke(wifiManager);
} catch (Exception e) {
Log.e(this.getClass().toString(), "", e);
return null;
}
}
Turn on hotspot
public boolean setWifiEnabled(Context context, WifiConfiguration wifiConfig, boolean enabled) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
try {
if (enabled) { //disables wifi if it's already enabled
wifiManager.setWifiEnabled(false);
}
Method method = wifiManager.getClass()
.getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
return (Boolean) method.invoke(wifiManager, wifiConfig, enabled);
} catch (Exception e) {
Log.e(this.getClass().toString(), "", e);
return false;
}
}
My app granded full permssions, I checked :
private void checkPermissions() {
PackageManager pm = weakReference.get(). getPackageManager();
String packageName =weakReference.get(). getPackageName();
try {
PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
String[] permissions = packageInfo.requestedPermissions;
if (permissions != null) {
for (String permission : permissions) {
int hasPermission = ContextCompat.checkSelfPermission(weakReference.get(), permission);
if (hasPermission != PackageManager.PERMISSION_GRANTED) {
Log.d("Permission", "Permission denied for: " + permission);
} else {
Log.d("Permission", "Permission granted for: " + permission);
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
Permission granted for: android.permission.ACCESS_WIFI_STATE D/Permission: Permission granted for: android.permission.CHANGE_WIFI_STATE D/Permission: Permission granted for: android.permission.WRITE_SETTINGS D/Permission: Permission granted for: android.permission.CHANGE_NETWORK_STATE