Нашел готовое решение, переделал немного (Berlin).
Используя это решение можно получать символы от вирт клавиатуры.
Регистрация клавиатуры SetMyVirtualKeyboard(const AControl: TFmxObject), где AControl - компонент обрабатывающий события OnKeyUp
procedure SetMyVirtualKeyboard(const AControl: TFmxObject);
begin
{$IFDEF ANDROID}
if FNativeVKService <> nil then Exit;
if not Assigned(FMyVirtualKeyboardAndroid) then
begin
FMyVirtualKeyboardAndroid := TVirtualKeyboardAndroidEx.Create;
FMyVirtualKeyboardAndroid.OnKeyUp := TForm(AControl).OnKeyUp;
end;
FNativeVKService := IFMXVirtualKeyboardService(TPlatformServices.Current.GetPlatformService(IFMXVirtualKeyboardService));
if FNativeVKService <> nil then
begin
TPlatformServices.Current.RemovePlatformService(IFMXVirtualKeyboardService);
end;
TPlatformServices.Current.AddPlatformService(IFMXVirtualKeyboardService, FMyVirtualKeyboardAndroid);
{$ENDIF}
end;
Вызов клавиатуры стандартно
TPlatformServices.Current.SupportsPlatformService(
IFMXVirtualKeyboardService,
IInterface(aVirtualKeyboardService));
if (aVirtualKeyboardService <> nil) then
aVirtualKeyboardService.ShowVirtualKeyboard(fMain);
Скрытие, тоже стандартно
if (key=13) then
begin //если нажата клавиша enter
if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(aVirtualKeyboardService)) then
aVirtualKeyboardService.HideVirtualKeyboard;
end;
MyFMX.VirtualKeyboard.Android.rar