1

如何确定firemonkey应用程序中的位置服务是否打开/关闭?

我知道这篇文章:How to check if network is available on Android (Delphi XE5)。我不确定这是否有助于我检测位置服务是打开还是关闭。

4

1 回答 1

5

要确定定位服务是否开启/关闭,您必须检查 GPS 和网络定位服务是否已激活,为此您必须使用类的isProviderEnabled方法LocationManager,在 Delphi 中,该类是在Androidapi.JNI.Location单元中定义的。

检查这个样本

uses
  Androidapi.Helpers,
  Androidapi.JNI.Location,
  Androidapi.JNIBridge,
  FMX.Helpers.Android,
  Androidapi.JNI.GraphicsContentViewText;

{$R *.fmx}       

procedure TForm1.Button1Click(Sender: TObject);
var
  locationManager : JLocationManager;
begin
  locationManager := TJLocationManager.Wrap(
    ((SharedActivity.getSystemService(TJContext.JavaClass.LOCATION_SERVICE)) 
    as ILocalObject).GetObjectID);

  if locationManager.isProviderEnabled(TJLocationManager.JavaClass.GPS_PROVIDER) then
   ;   //do something   

  if locationManager.isProviderEnabled(TJLocationManager.JavaClass.NETWORK_PROVIDER) then 
   ;   //do something  else   

end;
于 2013-10-21T15:01:18.320 回答