Delphi 10.3, Anroid (8.1.0), Zebra TC20, SSID - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь получить SSID, но он всегда возвращает

procedure TMainScreen.Button1Click(Sender: TObject);
var obj: JObject;
    WifiMgr : JWifiManager;
    WifiInfo : JWifiInfo;

    level : integer;
    SSID : string;
begin
  // ACCESS_FINE_LOCATION Permission

  obj := SharedActivityContext.getSystemService(TJContext.JavaClass.WIFI_SERVICE);
  WifiMgr := TJWifiManager.Wrap((obj as ILocalObject).GetObjectID);

  WifiInfo := WifiMgr.getConnectionInfo;

  level:=WifiInfo.getRssi;

  SSID := JStringToString(WifiInfo.getSSID);

  Toast('SSID '+SSID+' Signal Strength : '+IntToStr(level), TToastLength.ShortToast);

end;

Я также пытался

  if WifiInfo.getSupplicantState = TJSupplicantState.JavaClass.COMPLETED then
  begin
    SSID := JStringToString(WifiInfo.getSSID);
  end
  else
  begin
    SSID := 'Not Completed';
  end;

, но он всегда возвращает Not Completed.

ОБНОВЛЕНИЕ 1

Я запускаю Программу без WIFI-соединения.

 Toast(JStringToString(WifiInfo.getSupplicantState.toString), TToastLength.ShortToast);

У меня ОТКЛЮЧЕНО.

Затем я запускаю соединение с WIFI, оно говорит СКАНИРОВАНИЕ.

Тогда я подключен, он говорит: ПОДКЛЮЧЕНО.

Но почему же тогда это не работает?

 if WifiInfo.getSupplicantState = TJSupplicantState.JavaClass.COMPLETED then

и это работает

  if JStringToString(WifiInfo.getSupplicantState.toString) = 'COMPLETED' then
  begin
    Toast('String Compare', TToastLength.ShortToast);
  end;
...