如何确定firemonkey应用程序中的位置服务On / Off?
我知道这篇文章:How to check if network is available on Android ( Delphi XE5 )。我不确定这有助于我检测位置服务是打开还是关闭。
答案 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;