1

使用德尔福 XE6

我有这些代码:

  procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
var
  FService : IFMXVirtualKeyboardService;
begin
  if Key = vkHardwareBack then
  begin
    TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
    if TVirtualKeyBoardState.Visible in FService.GetVirtualKeyBoardState then
    begin
      FService.HideVirtualKeyboard;
    end else
    begin
      if TabControl1.ActiveTab = TabItem2 then
      begin
        TabControl1.ActiveTab := TabItem1;
        Key := 0;
      end else
      begin
        Self.Hide;
        MainActivity.Finish;
        Application.MainForm.DisposeOf;
        Key := 0;
      end;
    end;
  end;
end;

procedure TMainForm.ConnectButtonClick(Sender: TObject);
begin
  TetheringManager1.Enabled:=True;
  TetheringAppProfile1.Enabled:=True;
  TetheringManager1.AutoConnect(3000);
end;

当 TetheringManager 和 TetheringAppProfiler 未启用且未连接时,使用硬件后退按钮 android 应用程序关闭/打开正常。但是当连接时,android应用程序无法正确关闭且无法正确打开(我只看到黑屏,但下次应用程序打开正常)。有什么办法可以断开网络共享?

4

1 回答 1

0

使用这些:

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
  I: Integer;
begin
  for I := TetheringManager1.PairedManagers.Count - 1 downto 0 do
    TetheringManager1.UnPairManager(TetheringManager1.PairedManagers[I]);
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
  TetheringAppProfile1.Enabled:=False;
  TetheringManager1.Enabled:=False;
end;

和:

if Key = vkHardwareBack then
  begin
    if TabControl1.ActiveTab = TabItem2 then
    begin
      Key := 0;
      TabControl1.ActiveTab := TabItem1;
    end;
  end;

再次连接时很简单:

  TetheringAppProfile1.Enabled:=True;
  TetheringManager1.Enabled:=True;

我没有问题了:)

于 2014-10-12T16:06:08.133 回答