gpt4 book ai didi

android - Firemonkey 为 Android 启用 GPS 服务

转载 作者:行者123 更新时间:2023-12-02 02:21:06 25 4
gpt4 key购买 nike

我想知道是否可以在 Firemonkey 项目中启用 GPS 服务?位置传感器未启用它。仅当启用 GPS 或您有网络位置时,它才能获取 GPS 坐标。

在其他一些 Android 应用程序中,它会询问您是否要启用 GPS,如果您同意,它将为该应用程序启用 GPS。我也想做这个。

我已经知道如何检查 Android 是否启用了 GPS 服务,但不知道如何启用它本身。

下面的代码是如何检查 GPS 是否启用:

uses
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;

如果你用 Java 编程,我也尝试过做同样的事情。喜欢这个链接:https://stackoverflow.com/a/5305835/2728408

procedure TForm1.Button1Click(Sender: TObject);
{$IFDEF ANDROID}
var
Intent: JIntent;
{$ENDIF}
begin
{$IFDEF ANDROID}
Intent := TJIntent.Create;
Intent.addCategory(TJIntent.JavaClass.CATEGORY_ALTERNATIVE);
Intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('3')));
Intent.setClassName(StringToJString('com.android.settings'), StringToJString('com.android.settings.widget.SettingsAppWidgetProvider'));
try
//For Delphi 10 Seattle
TAndroidHelper.Activity.sendBroadcast(Intent);
//For older versions of Delphi
//SharedActivity.sendBroadcast(Intent);
except
on e: exception do
begin
ShowMessage('Error: ' + e.Message);
end;
end;
{$ENDIF}
end;

我没有收到任何错误,但我的 GPS 也没有打开。

更新:Android 4.0 及更高版本似乎无法启用 GPS。

最佳答案

您无法启用 GPS,但您可以要求用户这样做:

procedure TForm1.GPSSettings;
{$IFDEF ANDROID}
var
Intent: JIntent;
{$ENDIF}
begin
{$IFDEF ANDROID}
Intent := TJIntent.Create;
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_LOCATION_SOURCE_SETTINGS);
TAndroidHelper.Activity.startActivity(Intent);
{$ENDIF}
end;

关于android - Firemonkey 为 Android 启用 GPS 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36420687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com