确定位置服务是否已启用

Ous*_*fai 1 delphi android firemonkey delphi-xe5

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

我知道这篇文章:如何检查Android上是否有网络(Delphi XE5).我不确定这有助于我检测位置服务是打开还是关闭.

RRU*_*RUZ 5

要确定位置服务是否为On/Off,您必须检查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;
Run Code Online (Sandbox Code Playgroud)