为什么 isProviderEnabled() 方法即使在建筑物内部也始终返回 true

2023-12-28

在这种情况下,我使用 GPS 作为提供商,我尝试在建筑物内行走,但似乎找不到位置。是的,在大楼里 GPS 不起作用是有道理的。那么,为什么 isProviderEnabled 返回 true 呢?无论如何,我应该如何实现“搜索 GPS 信号”?

            String context = Context.LOCATION_SERVICE;
            locman = (LocationManager)getSystemService(context);


            Criteria criteria = new Criteria();
            criteria.setAccuracy(Criteria.ACCURACY_FINE);
            criteria.setAltitudeRequired(false);
            criteria.setBearingRequired(false);
            criteria.setPowerRequirement(Criteria.POWER_LOW);
            String provider = locman.getBestProvider(criteria, true);

            if (locman.isProviderEnabled( LocationManager.GPS_PROVIDER )) {
            // Change from 'Searching for GPS signal to Use GPS'
                txtGPS.setText("Use GPS");

            }
            locman.requestLocationUpdates(
                    provider,MIN_TIME, MIN_DISTANCE, locationListener);

isProviderEnabled()只查看您是否启用了 GPS,它不会关心您是否看到任何卫星!

如果您想检查是否有卫星,您必须使用gpslistener这是使用 gpslistner 的方法:

/**
         * Hier wird ein neuer GPSListener erstellt.
         * Dieser Überprüft ob es Sichtbare Sattelitten gibt.
         */
        mLocationManager.addGpsStatusListener(new GpsStatus.Listener() {

            public void onGpsStatusChanged(int event) {

                // Hier wird der EVENT gefiltert
                // Dieser EVENT erscheint immer wenn GPS Satteliten in sicht sind
                if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
                    // GpsStatus casten
                    GpsStatus status = mLocationManager.getGpsStatus(null);

                    // Interable sats instanzieren und casten
                    Iterable<GpsSatellite> sats = status.getSatellites();

                    // SATCOUNT instanzieren, wird benötigt um die Satteliten zu zählen
                    int SATCOUNT = 0;

                    // Interator satI instanzieren und casten.
                    Iterator<GpsSatellite> satI = sats.iterator();

                    // Hier wird die anzahl der Satteliten gezählt
                    while(satI.hasNext()){
                        // Den Interator auf den nächsten Satteliten verweisen
                        GpsSatellite satellite = satI.next();

                        // Satelitten zählen
                        SATCOUNT++;
                        Log.d("GPSListner", "While with SATCOUNT = " + SATCOUNT + " Elevation des Satellites = " + satellite.getElevation());


                    }

                    // Prüfen ob SATCOUNT 4 Satelitten hat
                    if(SATCOUNT > GPS_SAT_COUNT){

                    String test = String.valueOf(SATCOUNT);
                    Log.d("GPSSTATUS", "(true) Anzahl der Sattelitten: " + test );

                    // Boolean mGpsOk auf true setzen
                    GPSService.mGpsOk = true;
                    }else{

                    String test2 = String.valueOf(SATCOUNT);
                    Log.d("GPSSTATUS", "(fasle) Anzahl der Sattelitten: " + test2 );

                    // Boolean mGpsOk auf false setzen
                    GPSService.mGpsOk = false;

                    }

                }
            }
        });

为了让这个工作,你需要启动一个想要使用 gps 的位置管理器,现在你的 gpslistner 可以检查视图中是否有任何卫星并写入一个变量 true 或 false。之后您可以检查 Variabel。如果属实(视图中至少有 4 颗卫星),您可以使用Criteria.ACCURACY_FINE否则你可以使用Criteria.ACCURACY_COARSE.不要忘记为两者设置权限!

此致

safari

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 isProviderEnabled() 方法即使在建筑物内部也始终返回 true 的相关文章

  • 如何使用 Android 版 Facebook 同步的联系人图片

    我的手机上安装了 Android 版 Facebook 它会自动将联系人列表中人员的 FB 个人资料图片同步到我的手机 我想在我访问的应用程序中使用这些图片ContactsContract PhoneLookup 我真的需要 Faceboo
  • android - 过度绘制布局允许通过 LinearLayout 进行触摸

    在下面的 UI 中 我将下面的 drabable 覆盖了整个屏幕 LinearLayout 是透明的 并允许其下方的控件可单击或可触摸 基本上我可以滚动此 LinearLayout 下面的列表以及单击控件 我如何禁用它 See attach
  • 相当于Android中的javax.swing.Timer

    有没有类似的东西javax swing Timer在安卓上 我知道如何创建自己的线程 但是有类似摆动计时器的东西吗 您可能正在寻找课程android os CountDownTimer http developer android com
  • 如何在 Android 中创建刮刮卡?

    我需要为我在学校的期末项目创建一个 刮刮卡 应用程序 但找不到如何实现刮刮事件的方法 如何创建背景图像并在其上放置灰色矩形 所以当我刮刮这些矩形时我会看到他们下面的图片 实现必须在 Android 中 因为我还不知道如何在 Objectiv
  • Android 上的硬币识别

    我目前正在开发一个 Android 应用程序 它能够拍摄硬币的现有图像 或者使用内置摄像头扫描单个硬币 非常像 Google Goggles 我正在使用 Android 版 OpenCV 我的问题如下 什么方法最适合使用 OpenCV 在
  • 在 Android 中关闭 Spinner 中的下拉菜单

    在 Android 中打开和关闭微调器时 我需要为箭头图标设置动画 打开微调器时我可以旋转箭头 我只是放了一个setOnTouchListener on the Spinner 当下拉菜单关闭或隐藏时 问题就来了 因为我不知道如何在该操作上
  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • Twitter 集成期间获取访问令牌函数行为不当

    我只是想使用 twitter4j 从我的 Android 应用程序向 Twitter 分享文本 首先 我尝试的是我创建了一个新项目 并且这个特定的代码运行成功 然后我在我的应用程序中混合了该特定代码 登录 Twitter 成功完成 之后我发
  • 如何在Firebase Android应用程序中分离两个不同的用户?

    我有一个应用程序 有两种不同类型的用户 一种是教师 第二种是普通用户 如果普通会员登录 他会去normal memberActivity如果他是教师会员 他会去Teacher memberActivity 我如何在登录活动中执行此操作 我的
  • Android 在创建时出现 SQLiteException

    首先我想说我是android新手 所以如果这个问题太愚蠢我很抱歉 我正在为带有两个表的 SQLite 数据库编写一个内容提供程序 表格上是在导航抽屉活动中显示列表 第二个表格是在 ListFragment 中显示 每次启动应用程序时 我都会
  • Android接收通知打开和取消事件

    我从 webService 接收数据以生成自定义通知 我想追踪Intent要知道open 点击 或cancel 滑动 通知上的事件 以报告服务器进行分析 有没有听众onIntentStart or onIntentCanceled 也许是通
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • 在Android的activity中调用onResume

    在活动的过程中通过调用 this OnResume 强制 onResume 事件可以吗 或者我应该实现另一个由 OnResume 和第一个成员调用的过程 实现在您的重写中调用的另一个过程onResume 后者不打算由您调用 它是一种方便的方
  • Android 将菜单项在操作栏中向左对齐

    我的应用程序中有一个操作栏 它显示我定义的菜单项res menu activity main xml 我的菜单项在操作栏上向右对齐 我希望它们左对齐 我为此找到的唯一解决方案使用了自定义操作栏 如下所示 将菜单项放置在 Honeycomb
  • EditText 的高度不会扩展到其父级的高度

    我在滚动视图中放置了编辑文本 高度 match parent并期望它的高度等于滚动视图 但事实并非如此 它的高度就像wrap content这意味着如果 EditText 中没有文本 我必须将光标指向要弹出的软键盘的第一 行 我想要的是我可
  • 我可以在主线程上读取一个小 txt 文件,还是应该始终避免那里的 I/O?

    我正在读取一个小的 json 文件 其中有几行 它存储在用户设备的内部应用程序文件夹中 我所做的就是这样 JSONObject jsonObject new JSONObject MyUtils inputStreamToString My
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • 如何用 XML 制作双渐变(类似 iphone)

    如何使用 XML 制作这种可绘制渐变 我可以做一个从颜色 A 到颜色 B 的简单渐变 但我不知道如何在同一个可绘制对象中组合两个渐变 我终于找到了一个带有图层列表的解决方案 这对我来说已经足够好了
  • Admob - 没有广告可显示

    你好 我尝试制作一些在 Android 手机上显示广告的示例程序 并尝试在 v2 2 的模拟器上测试它 代码中的一切似乎都很好 但调试器中的 AdListener 表示 响应消息为零或空 onFailedToReceiveAd 没有广告可显
  • android-如何在谷歌地图上将标记的位置显示为地址

    我已经尝试过 commonsware googlemapsv2 教程 特别是在地图上拖动标记 但现在另一个问题困扰着我 问题是如何将标记的当前位置显示为地图下方或上方的地址 字符串 这是我使用的代码 public class MainAct

随机推荐

  • 将图像保存在Android图库中

    我正在使用此代码来保存图像 URL url null try url new URL image catch MalformedURLException e1 e1 printStackTrace Bitmap bmp null try b
  • Thin + Nginx + Websockets 配置 |导轨

    我有一个带有 websocket rails gem 的 Ruby on Rails 3 2 应用程序 在 nginx 反向代理后面的瘦网络服务器中运行 除了 nginx 反向代理外 一切正常 通过删除 nginx 反向代理 websock
  • 在使用 Xamarin 完成方法之前 UI 不会更新

    我正在开始我的移动开发冒险 并且已经遇到了一个问题 我知道在 WPF 中我会使用BackgroundWorker更新 UI 但它如何使用 Xamarin 与 Android 配合使用 我找到了很多建议 但没有一个对我有用 下面的代码在执行其
  • 导入底图时出现导入错误

    我在导入底图时遇到问题 即使我刚刚通过安装pip install basemap 我已经尝试过 python2 7 和 python3 python3 gt gt gt from mpl toolkits basemap import Ba
  • 将div放在导航栏下方并且不要与内容重叠

    我的问题是我在网页顶部修复了一个导航栏 它包括两侧边距和顶部边距 在这个导航栏下面 我想设置一个可滚动的容器 假设我正在使用 Bootstrap 3 2 0 来布局网站 问题是 由于导航栏的边距 我想要放在下面的内容与导航栏重叠 并且显示在
  • Jmeter,如何增加堆大小

    我读过您需要更改 jmeter bat 文件中的堆大小 我使用的是 Windows 以增加内存 以便能够测试大约 500 个线程或更多 这是默认值 if not defined HEAP rem See the unix startup f
  • 如何在android中交换具有不同布局的片段?

    我正在开发一个使用片段的 Android 应用程序 它更像是主 详细信息形式 我希望主要活动由左侧的列表片段组成 根据左侧选择的项目 我想在右侧显示具有不同布局的片段 注意 右侧的每个片段需要不同的布局 视图 我遇到的所有示例都仅使用右侧的
  • org.openqa.selenium.WebDriverException:未知错误:Chrome 无法启动:崩溃。 (未知错误:DevToolsActivePort 文件不存在)

    Javascript selenium 框架 不在 Chrome 上运行 我已经尝试了所有可能的方法 取消选中以管理员身份运行 Code public void setUp throws InterruptedException IOExc
  • Microsoft VisualStudio TestTools UITest dll

    我需要找到 Microsoft VisualStudio TestTools UITest Common dll Microsoft VisualStudio TestTools UITest Extension dll Microsoft
  • iOS 8.3 更新后 NSMutableURLRequest 正文格式错误

    在今天的 iOS 8 3 更新之前 我的代码工作正常 但更新后服务器开始拒绝请求 因为它找不到 JSON 数据 我发现 iOS 发送了错误的 application x www form urlencoded 文本 未正确编码 因为它看起来
  • Symfony 2中如何获取请求参数?

    我对 symfony 很陌生 在其他语言中 例如 java 和其他语言 我可以使用request getParameter parmeter name 来获取该值 我们可以用 symfony2 做一些类似的事情吗 我看过一些例子 但没有一个
  • 在 attoparsec 中实现skipWhile1

    阿托秒差距 https hackage haskell org package attoparsec提供功能takeWhile1至少消耗一个字符 然而 没有类似的skipWhile 我该如何实现这个功能skipWhile1 Note 这个问
  • 如何永久显示标记标签?

    在jVectorMap中 我试图找到一种解决方案来永久显示标记标签 但我无法做到 我在文档中也没有找到任何有关它的信息 我只想最初显示的标记标签 有什么建议么 没有一种快速或简单的方法 jVectorMap 显示标签的方式是使用 div 和
  • 如何使用“RotateDrawable”?

    谁能告诉我他们是怎么得到的RotateDrawable是否可以通过代码或 XML 或两者来工作 关于动画绘制的文档非常差 动画似乎只适用于图像 我希望能够为所有可绘制对象制作动画 当我试图得到一个RotateDrawble来自 XML 只会
  • Groovy 和 GWT:结合两种范例

    是否可以使用 GWT 组件在 groovy 中开发应用程序 Luis 如果您想在服务器端使用 Groovy 并在 UI 上使用 GWT 那当然是可能的 您可以使用 Grails 服务器上的 Groovy Web 框架 并且Grails GW
  • 将表达式插值到表达式中

    我想在宏内部构建一个带有关键字参数的构造函数 并且第一个关键字参数需要用于表达式 我无法将该表达式放入表达式中 这就是我的意思 说我有一个类型 type Test ex end 其中包含一个表达式 我想创建一个构造函数origex a b
  • 在 RaphaelJS 中制作 100% 宽度的图表?

    我见过 Flash 中的图表和其他东西基本上可以很好地适应浏览器的大小或它们所在的灵活元素 我不太熟悉 raphaelJS 但你能做到这一点吗 如果是的话 如何 在 raphaeljs 中 您可以对 Raphael 对象调用 setSize
  • hadoop map reduce -archives 不解压存档

    希望你能帮我 我在 hadoop map reduce 上遇到了一个令人头疼的问题 我已经在 hadoop 版本 1 0 3 上成功地在 map reduce 上使用了 files 选项 但是 当我使用 archives 选项时 它会复制文
  • 有或没有[弱自我]

    我的情况很奇怪 我的服务器当前已关闭并收到 503 http 状态代码 根据给定的代码如下 代码进入 if 条件 但是当我将调试点置于let error self decodeErrorMessage data data statusCod
  • 为什么 isProviderEnabled() 方法即使在建筑物内部也始终返回 true

    在这种情况下 我使用 GPS 作为提供商 我尝试在建筑物内行走 但似乎找不到位置 是的 在大楼里 GPS 不起作用是有道理的 那么 为什么 isProviderEnabled 返回 true 呢 无论如何 我应该如何实现 搜索 GPS 信号