如何在Android中关闭与Application Tethering的连接

时间:2014-09-06 09:45:00

标签: android delphi tethering

使用Delphi 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应用程序没有正确关闭而且没有正确打开(我只看到黑屏,但下次应用程序打开没关系)。 有什么方法可以断开网络共享吗?

1 个答案:

答案 0 :(得分: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;

我已经没有问题了:)