2016-09-14 2 views
0

Android 용 모바일 애플리케이션 개발을 위해 Delphi 10.1 Berlin을 사용하고 있습니다. 그리고 위치 센서가 켜지지 않았는지 확인해야한다면 안드로이드 모바일의 위치 센서 설정으로 리디렉션해야합니다. Delphi를 사용하여 구현할 수 있습니까? JAVA을 사용하는 예제를 보았지만 델파이에서는 찾을 수 없습니다. 그리고 미리 감사드립니다.델파이를 사용하여 앱을 Android에서 위치 센서 설정으로 리디렉션하는 방법

답변

1

다음과 같은 코드를 시도해 볼 수 있습니다.

uses 
    FMX.Helpers.Android, 
    Androidapi.Helpers, 
    Androidapi.JNI.Widget, 
    LocationU; 

procedure TMainForm.FormCreate(Sender: TObject); 
begin 
    if not IsGPSProviderEnabled and not IsNetworkProviderEnabled then 
    begin 
    CallInUiThread(
     procedure 
     begin 
     TJToast.JavaClass.makeText(
      TAndroidHelper.Context, 
      StrToJCharSequence('Location services not enabled - launching settings'), 
      TJToast.JavaClass.LENGTH_SHORT).show 
     end); 
    LaunchLocationSettings; 
    end; 
end; 
: 여기

unit LocationU; 

interface 

function IsGPSProviderEnabled: Boolean; 

function IsNetworkProviderEnabled: Boolean; 

procedure LaunchLocationSettings; 

implementation 

uses 
    System.SysUtils, 
    Androidapi.Helpers, 
    Androidapi.JNI.JavaTypes, 
    Androidapi.JNI.GraphicsContentViewText, 
    Androidapi.JNI.Location, 
    Androidapi.JNI.Provider; 

function IsProviderEnabled(const Provider: JString): Boolean; 
var 
    LocationManagerObj: JObject; 
    LocationManager: JLocationManager; 
begin 
    LocationManagerObj := TAndroidHelper.Context.getSystemService(
    TJContext.JavaClass.LOCATION_SERVICE); 
    LocationManager := TJLocationManager.Wrap(LocationManagerObj); 
    Result := LocationManager.isProviderEnabled(Provider); 
end; 

function IsGPSProviderEnabled: Boolean; 
begin 
    Result := IsProviderEnabled(TJLocationManager.JavaClass.GPS_PROVIDER); 
end; 

function IsNetworkProviderEnabled: Boolean; 
begin 
    Result := IsProviderEnabled(TJLocationManager.JavaClass.NETWORK_PROVIDER); 
end; 

procedure LaunchLocationSettings; 
begin 
    TAndroidHelper.Activity.startActivity(
    TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_LOCATION_SOURCE_SETTINGS)); 
end; 

end. 

하고 호출하는 코드입니다 : 여기에 도우미 단위는