Android 9.0 Wifi Hotspot Api
Solution 1:
You're using reflection method getWifiApiConfiguration
which doesn't works for API>=26.
Good news, for API>=26, you don't need to use reflection. You can just use the public exposed API by android i.e. startLocalOnlyHotspot
It requires Manifest.permission.CHANGE_WIFI_STATE
and ACCESS_FINE_LOCATION
permissions.
Here's a simple example of how you can turn on hotspot using this API.
private WifiManager wifiManager;
WifiConfiguration currentConfig;
WifiManager.LocalOnlyHotspotReservation hotspotReservation;
The method to turn on hotspot:
`
@RequiresApi(api = Build.VERSION_CODES.O)publicvoidturnOnHotspot() {
wifiManager.startLocalOnlyHotspot(newWifiManager.LocalOnlyHotspotCallback() {
@OverridepublicvoidonStarted(WifiManager.LocalOnlyHotspotReservation reservation) {
super.onStarted(reservation);
hotspotReservation = reservation;
currentConfig = hotspotReservation.getWifiConfiguration();
Log.v("DANG", "THE PASSWORD IS: "
+ currentConfig.preSharedKey
+ " \n SSID is : "
+ currentConfig.SSID);
hotspotDetailsDialog();
}
@OverridepublicvoidonStopped() {
super.onStopped();
Log.v("DANG", "Local Hotspot Stopped");
}
@OverridepublicvoidonFailed(int reason) {
super.onFailed(reason);
Log.v("DANG", "Local Hotspot failed to start");
}
}, newHandler());
}
`
Here's how you can get details of the locally created hotspot
privatevoidhotspotDetaisDialog()
{
Log.v(TAG, context.getString(R.string.hotspot_details_message) + "\n" + context.getString(
R.string.hotspot_ssid_label) + " " + currentConfig.SSID + "\n" + context.getString(
R.string.hotspot_pass_label) + " " + currentConfig.preSharedKey);
}
`
I recently created a demo app called Spotserve. That turns on wifi hotspot for all devices with API>=15 and hosts a demo server on that hotspot. You can check that for more details. Hope this helps!
Solution 2:
You have another option if your device its rooted.
Use this command to enable:
service call connectivity 24 i32 0 i32 1 i32 0 s16 text > /dev/null
In the official documentation of Android, the method startLocalOnlyHotspot
allows sharing an internal connection but doesn't have access to internet.
Post a Comment for "Android 9.0 Wifi Hotspot Api"