确定位置服务是否已启用

时间:2013-10-21 12:04:38

标签: android delphi firemonkey delphi-xe5

如何确定firemonkey应用程序中的位置服务On / Off?

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

1 个答案:

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