delphi xe6 for android LocationSensor控件默认是优先使用网络定位,对定位精度要求高的应用我们可以修改原码直接指定GPS定位。

修改方法:

将C:\Program Files\Embarcadero\Studio\14.0\source\rtl\common\System.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;

delphi xe6 for android 自带控件LocationSensor优先使用GPS定位的方法的更多相关文章

  1. android 让一个控件按钮居于底部的几种方法

    android 让一个控件按钮居于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" <!-- 这里不能设置fill_ ...

  2. [Android] Android 让UI控件固定于底部的几种方法

    Android 让UI控件固定于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" <!-- 这里不能设置fill_p ...

  3. [转]android 让一个控件按钮居于底部的几种方法

    本文转自:http://www.cnblogs.com/zdz8207/archive/2012/12/13/2816906.html android 让一个控件按钮居于底部的几种方法 1.采用lin ...

  4. Android 中常见控件的介绍和使用

    1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.la ...

  5. 介绍三个Android支持库控件:TabLayout+ViewPager+RecyclerView

    本文主要介绍如下三个Android支持库控件的配合使用: TabLayout:android.support.design.widget.TabLayout ViewPager:android.sup ...

  6. Android自己定义控件:进度条的四种实现方式

    前三种实现方式代码出自: http://stormzhang.com/openandroid/2013/11/15/android-custom-loading/ (源代码下载)http://down ...

  7. android 自己定义控件

    Android自己定义View实现非常easy 继承View,重写构造函数.onDraw.(onMeasure)等函数. 假设自己定义的View须要有自己定义的属性.须要在values下建立attrs ...

  8. Android自己定义控件皮肤

    Android自己定义控件皮肤 对于Android的自带控件,其外观仅仅能说中规中矩,而我们平时所示Android应用中,一个简单的button都做得十分美观.甚至于很多button在按下时的外观都有 ...

  9. Android中ListView控件的使用

    Android中ListView控件的使用 ListView展示数据的原理 在Android中,其实ListView就相当于web中的jsp,Adapter是适配器,它就相当于web中的Servlet ...

随机推荐

  1. 数据流重定向和管道命令, grep, tr,sort, wc, cut,split,tee,sleep(shell 02)

    主要内容 1.标准输入输出和错误 2.管道命令和 grep, tr,sort, wc, cut,split,tee,sleep 标准输入输出和错误 标准输入(stdin) 是指令数据的输入,代码为0, ...

  2. 2012_p2 寻宝 (treasure.cpp/c/pas)

    2012_p2 寻宝 (treasure.cpp/c/pas) 时间限制: 1 Sec  内存限制: 128 MB提交: 23  解决: 9[提交][状态][讨论版][命题人:外部导入] 题目描述 2 ...

  3. PTA 词频统计(30 分)

    词频统计(30 分) 请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词. 所谓“单词”,是指由不超过80个单词字符组成的连续字符串,但长度超过15的单词将只截取保留 ...

  4. An internal error occurred during: "Map/Reducelocation status updater".java.lang.NullPointerException

    当我们运行wordcount代码时,出现报错,如下所示: An internal error occurred during: "Map/Reducelocation status upda ...

  5. VC++使用TCHAR

    #ifdef _UNICODE #define tcout wcout #define tcin wcin #else #define tcout cout #define tcin cin #end ...

  6. Bash读取/etc/passwd的特殊技巧

    在twitter上看到的,记录一下: 可以bypass基于正则的规则,这里还可以引申出其他的bypass方法,

  7. oracle中,约束、表名、Index等的名称长度限制最大只能30个字符

    oracle中,约束.表名.Index等的名称长度限制最大只能30个字符

  8. 第十六章 Java内存模型(待续)

    ········

  9. leetcode378

    public class Solution { public int KthSmallest(int[,] matrix, int k) { ); ); var list = new List< ...

  10. springmvc高级知识点