Ich war Wandern, wenn Sie den GPS-Dienst in einem Firemonkey-Projekt aktivieren können? Der Locationsensor aktiviert ihn nicht. Es kann nur GPS-Koordinaten erhalten, wenn GPS aktiviert ist oder Sie einen Netzwerkstandort haben.Firemonkey aktivieren GPS-Dienst für Android
In einigen anderen Android Apps werden Sie gefragt, ob Sie das GPS aktivieren möchten. Wenn Sie zustimmen, wird GPS für diese App aktiviert. Ich möchte das auch machen.
Ich weiß bereits, wie man überprüft, ob der GPS-Dienst für Android aktiviert ist, aber nicht, wie man es selbst aktiviert.
-Code unten ist, wie zu überprüfen, ob GPS aktiviert ist:
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;
Ich habe versucht, das gleiche zu tun, wenn Sie es in Java programmieren würde. Wie dieser Link: 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;
Ich erhalte keine Fehler, aber mein GPS bekommt auch nicht eingeschaltet.
UPDATE: Es scheint deaktiviert zu sein, GPS für Android 4.0 und höher zu aktivieren.
Tat sie tun, um diese Fähigkeit filtern, um nur in der Lage sein, eine Benutzereingabe erforderlich ist, um fortzufahren. Sicherlich muss es aber einen Hack geben. –