Получить SSID отключенной сети Wi-Fi в Android с помощью BroadcastReceiver?

У меня есть следующий BroadcastRecevier:

public class WiFiConnectionEventsReceiver extends BroadcastReceiver {

    private static final String TAG = WiFiConnectionEventsReceiver.class.getSimpleName();

    @Override
    public void onReceive(Context context, @NonNull Intent intent) {
        Log.v(TAG, "action: " + intent.getAction());
        Log.v(TAG, "component: " + intent.getComponent());
        Bundle extras = intent.getExtras();
        if (extras != null) {
            for (String key : extras.keySet()) {
                Log.v(TAG, "key [" + key + "]: " +
                        extras.get(key));
            }
        } else {
            Log.v(TAG, "no extras");
        }

        ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = conMan.getActiveNetworkInfo();
        if (netInfo != null && netInfo.getType() == ConnectivityManager.TYPE_WIFI) {
            Log.d("NetworkInfo", "Have Wifi Connection");
            Log.d("NetworkInfo", netInfo.getExtraInfo());
            Log.d("NetworkInfo", netInfo.getTypeName());
        }
        else {
            Log.d("NetworkInfo", "Don't have Wifi Connection");
            Log.d("NetworkInfo", netInfo.getExtraInfo());
            Log.d("NetworkInfo", netInfo.getTypeName());
        }

        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        Log.d("WifiInfo",  wifiManager.getConnectionInfo().toString());
    }
}

Он получает сетевое соединение и события отключения.

Когда он подключается к сети WiFi, я могу легко получить SSID сети.

Но я хочу иметь возможность получить SSID сети WiFi, когда сеть также отключена (без необходимости сохранять ранее подключенные сети, а затем сопоставлять их таким образом и т. Д.). Это возможно?

Журналы, когда WiFi соединяется:

V/WiFiConnectionEventsReceiver: action: android.net.conn.CONNECTIVITY_CHANGE
V/WiFiConnectionEventsReceiver: component: ComponentInfo{com.example.test/com.example.test.WiFiConnectionEventsReceiver}
V/WiFiConnectionEventsReceiver: key [networkInfo]: [type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: "SKY123”, roaming: false, failover: false, isAvailable: true]
V/WiFiConnectionEventsReceiver: key [networkType]: 1
V/WiFiConnectionEventsReceiver: key [inetCondition]: 100
V/WiFiConnectionEventsReceiver: key [extraInfo]: "SKY123”
D/NetworkInfo: Have Wifi Connection
D/NetworkInfo: "SKY123”
D/NetworkInfo: WIFI
D/WifiInfo: SSID: SKY123, BSSID: 10:40:03:ad:6x:c9, MAC: 02:00:00:00:00:00, Supplicant state: COMPLETED, RSSI: -79, Link speed: 43Mbps, Frequency: 2412MHz, Net ID: 1, Metered hint: false, score: 60

Журналы, когда WiFi отключается (обратите внимание, неизвестный SSID):

V/WiFiConnectionEventsReceiver: action: android.net.conn.CONNECTIVITY_CHANGE
V/WiFiConnectionEventsReceiver: component: ComponentInfo{com.example.test/com.example.test.WiFiConnectionEventsReceiver}
V/WiFiConnectionEventsReceiver: key [networkInfo]: [type: WIFI[], state: DISCONNECTED/DISCONNECTED, reason: (unspecified), extra: <unknown ssid>, roaming: false, failover: false, isAvailable: true]
V/WiFiConnectionEventsReceiver: key [networkType]: 1
V/WiFiConnectionEventsReceiver: key [inetCondition]: 0
V/WiFiConnectionEventsReceiver: key [extraInfo]: <unknown ssid>
V/WiFiConnectionEventsReceiver: key [noConnectivity]: true
D/NetworkInfo: Don't have Wifi Connection
D/NetworkInfo: id
D/NetworkInfo: MOBILE
D/WifiInfo: SSID: <unknown ssid>, BSSID: <none>, MAC: 02:00:00:00:00:00, Supplicant state: COMPLETED, RSSI: -127, Link speed: -1Mbps, Frequency: -1MHz, Net ID: -1, Metered hint: false, score: 0

Причина, по которой я хотел бы получить эту информацию, заключается в том, что я хочу иметь возможность отслеживать использование WiFi пользователем в каждой сети - время подключения и отключения.

Без SSID отключенной сети я могу думать только об этом:

if (WiFi network ABC disconnected)
  if (if previous stored connection for WiFi network ABC has no disconnection time)
      set WiFI network ABC disconnection time to now

Тем не менее, вышеупомянутый подход выглядит нестабильным, например, что если по какой-то причине пропущено событие отключения WiFi и т. Д.

Ответы на вопрос(2)

Ваш ответ на вопрос