Skip to content Skip to sidebar Skip to footer

Android 9.0 Wifi Hotspot Api

What is the API call I need to make in Android 9.0 (Android P) to get a Wifi hotspot name? public static String getWifiApSSID(Context context) { try { WifiMana

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"