zoukankan      html  css  js  c++  java
  • delphi xe6 for android 自带控件LocationSensor优先使用GPS定位的方法

    delphi xe6 for android LocationSensor控件默认是优先使用网络定位,对定位精度要求高的应用我们可以修改原码直接指定GPS定位。
     
    修改方法:
     
    将C:Program FilesEmbarcaderoStudio14.0source tlcommonSystem.Android.Sensors.pas拷贝到自己的工程目录里
     
    打开System.Android.Sensors.pas找到function TUIAndroidLocationSensor.DoStart: Boolean;,然后按下面的提示修改就可以了。
     
     
     
    function TUIAndroidLocationSensor.DoStart: Boolean;
    var
      ProviderName : JString;
      Provider : JLocationProvider;
    begin
      Result := False;
      FPermitted := TPermission.IsPermitted(StringToJString('android.permission.ACCESS_FINE_LOCATION'));
      if FPermitted then
      begin
        if not Assigned(FLocationListener) then
          FLocationListener := TLocationListener.Create(Self);
    {-----删除以下几行
        if FLocationManager.isProviderEnabled(TJLocationManager.JavaClass.NETWORK_PROVIDER) then
          ProviderName := TJLocationManager.JavaClass.NETWORK_PROVIDER
        else
          if FLocationManager.isProviderEnabled(TJLocationManager.JavaClass.GPS_PROVIDER) then
            ProviderName := TJLocationManager.JavaClass.GPS_PROVIDER
          else
            ProviderName := TJLocationManager.JavaClass.PASSIVE_PROVIDER;
    -----删除以上几行}
        ProviderName := TJLocationManager.JavaClass.GPS_PROVIDER ;//增加这一行
        Provider := FLocationManager.getProvider(ProviderName);
     
        if Assigned(Provider) then
        begin
          FMyRunner := TLocationRunnable.Create(FLocationManager, FLocationListener, ProviderName);
          FActivity.runOnUiThread(FMyRunner);
          Result := True;
        end;
      end;
    end;

  • 相关阅读:
    阿里云磁盘扩容
    【Vue】WebPack 忽略指定文件或目录
    MySQL 全文索引 (FullText)
    产品设计
    13-Java面向对象-抽象类与接口
    06-数据存储
    07-网络与通信-02-Android中基于HTTP的通信技术
    10-Android 广播接收器 BroadcastReceiver
    09-Android 中 AIDL 的理解与使用
    09-Android 中 AIDL 的理解与使用
  • 原文地址:https://www.cnblogs.com/lantianhf/p/4335703.html
Copyright © 2011-2022 走看看