Reputation: 77
I'm trying to turn on hotspot programmatically on Oreo and onward Devices but unfortunately, the hotspot is turned off within few seconds. What can be the reason?
Here is How I'm trying to turn on.
public static boolean configApState(Context context, WiFiListener listener) {
if (isOreo()) {
turnOnHotspotOreo(context, listener);
return true;
}
return false;
}
@RequiresApi(api = Build.VERSION_CODES.O)
private static void turnOnHotspotOreo(Context context, final WiFiListener listener) {
WifiManager manager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
boolean isLocationEnable = Util.isLocationEnable(context);
if (!isLocationEnable) {
// location is not enabled
return;
}
manager.startLocalOnlyHotspot(new WifiManager.LocalOnlyHotspotCallback() {
@Override
public void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) {
super.onStarted(reservation);
mReservation = reservation;
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onStopped() {
super.onStopped();
if (hotspotListener != null) {
hotspotListener.onStop();
}
mReservation = null;
}
@Override
public void onFailed(int reason) {
super.onFailed(reason);
if (listener != null) {
listener.onFailure(reason);
}
mReservation = null;
}
}, new Handler());
}
Here is Permissions in Manifest file.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE " />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:node="replace" />
Upvotes: 0
Views: 258