You can use AndroidWifiManager library to enable hotspot programmatically.
Here is how it can be used in your code (This is already available in the Git ReadMe, I am just rewriting it.)
Step 1 : Add the jcenter repository to your build file
allprojects {
repositories {
...
jcenter()
}
}
Step 2 : Add the dependency
dependencies {
implementation 'com.vkpapps.wifimanager:APManager:1.0.0'
}
Step 3 : Use in your app
Handle error manually
APManager apManager = APManager.getApManager(this);
apManager.turnOnHotspot(this, new APManager.OnSuccessListener() {
@Override
public void onSuccess(String ssid, String password) {
//write your logic
}
}, new APManager.OnFailureListener() {
@Override
public void onFailure(int failureCode, @Nullable Exception e) {
//handle error like give access to location permission,write system setting permission,
//disconnect wifi,turn off already created hotspot,enable GPS provider
//or use DefaultFailureListener class to handle automatically
}
});
//use this line to turn off Hotspot
//apManager.disableWifiAp();
Handle error automatically with inbuilt class
APManager apManager = APManager.getApManager(this);
apManager.turnOnHotspot(this,
new APManager.OnSuccessListener() {
@Override
public void onSuccess(@NonNull String ssid, @NonNull String password) {
//write your logic
}
},
new DefaultFailureListener(this)
);
//use this line to turn off Hotspot
//apManager.disableWifiAp();