Hotspot turn off automatically after few seconds of turn on in Android 8.0 (Oreo)

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

Answers (0)

Related Questions