如果禁用 GPS,三星手机将无法获取位置信息

2024-01-24

我使用三星手机通过 LocationManager API 获取位置,如果禁用 GPS,我无法获取位置,通过网络提供商我无法获取位置。

这是代码,这在 HTC 和索尼甚至禁用 GPS 中都可以正常工作,但在三星手机中则不行。

public Location getLocation() {
        try {
            mLocationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);

            // getting GPS status
            isGPSEnabled = mLocationManager
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);

            // getting network status
            isNetworkEnabled = mLocationManager
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER); //fails in samsung phone returns NULL

            if (isGPSEnabled == false && isNetworkEnabled == false) {
                // no network provider is enabled
            } else {
                this.canGetLocation = true;
                if (isNetworkEnabled) {
                    mLocationManager.requestLocationUpdates(
                            LocationManager.NETWORK_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    if (mLocationManager != null) {
                        mLocation = mLocationManager
                                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                    }
                }
                // if GPS Enabled get lat/long using GPS Services
                if (isGPSEnabled) {
                    if (mLocation == null) {
                        mLocationManager.requestLocationUpdates(
                                LocationManager.GPS_PROVIDER,
                                MIN_TIME_BW_UPDATES,
                                MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        if (mLocationManager != null) {
                            mLocation = mLocationManager
                                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                        }
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return mLocation;
    }

此行为是三星手机独有的。 HTC 你不会遇到这个问题。

您必须启动 locationManager,因为默认情况下它会查找谷歌地图缓存,并且不关心该缓存对于当前位置信息的陈旧程度。执行此操作,启动您的应用程序,形成不同的 GPS 位置,并注意它仍然显示旧位置。现在启动谷歌地图,然后重新启动您的应用程序,您的位置将会改变。要以编程方式启动“当前位置”的应用程序,请在调用之前运行以下代码getLastKnownLocation

YOUR_APPLICATION_CONTEXT.getLocationManager().requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() {
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
    @Override
    public void onProviderEnabled(String provider) {
    }
    @Override
    public void onProviderDisabled(String provider) {
    }
    @Override
    public void onLocationChanged(final Location location) {
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果禁用 GPS,三星手机将无法获取位置信息 的相关文章

  • 如何更改Appcompat主题中的TimePicker线条颜色?

    如何更改 Appcompat 主题中所选数字之间的 TimePicker 线条颜色 线条是蓝色的 但我需要橙色线条 我将 TimePickerDialog 与 ContextThemeWrapper 一起使用 TimePickerDialo
  • 在 Android 10/Q 上运行的 Android ACTIVITY_RECOGNITION 权限 SDK 28 (SDK 29)

    我的 Android 应用程序以 SDK 28 为目标 并连接到 Google Fit 以上传数据并读取其他一些数据 该应用程序使用 HistoryAPI 读取 com google step count delta 数据 本文档声称 如果
  • 无法再转换为 LayerDrawable(升级 v7 后)

    我正在使用支持库的最新版本 22 1 1 我曾经这样去 mRatingBar RatingBar getActivity findViewById R id rating LayerDrawable layer LayerDrawable
  • 使用 Android NDK r5b 链接静态库时出现问题 [重复]

    这个问题在这里已经有答案了 最近升级到 NDK r5b 构建失败 并出现对静态库中函数的 未定义引用 这是错误 home brian workspace VoiceEngineDemo obj local armeabi v7a objs
  • Mediaplayer 播放几次后停止播放

    我有一个按钮 按下它会播放一个随机声音剪辑 然后播放另一个声音剪辑 然后通过一个媒体播放器播放另一个声音剪辑 但是多次按下该按钮 15 20 次 后 所有音频都会停止 我在播放最后一个音频剪辑后释放媒体播放器 所以我不认为这是原因 有什么指
  • onScale 和 Canvas - 缩放图像后如何调整原点?

    我有一个非常简单的测试应用程序 带有自定义组件MyView java https github com afarber android newbie blob master TestScroll src de afarber testscr
  • Android Studio:如果设置项目的背景颜色,ListView OnClick 动画将不起作用

    在我的项目中 我在 ListView 内设置了项目 由插入 ConstraintLayout 中的多个元素组成 的背景颜色 但如果背景颜色不是至少一点透明 则单击和长按的默认动画会消失 事实上 随着透明度的降低 点击元素的效果越来越不明显
  • 如何使用 queryIntentActivityOptions() 方法

    我正在尝试创建一个对话框 显示用户手机中的所有应用程序 可用于从存储中选择照片或使用相机拍摄照片 以下是我计划使用的两个意图 Intent photoPickerIntent new Intent Intent ACTION PICK ph
  • 使用 Spotify SDK 安装 Android 应用程序时出错,[INSTALL_FAILED_NO_MATCHING_ABIS]

    我正在尝试遵循Spotify Beta SDK 使用教程 https developer spotify com technologies spotify android sdk tutorial 每当我尝试将应用程序安装到 Nexus 6
  • Android 中表与游标的并集

    我正在尝试将两个具有相同字段的表合并起来 通过内容提供程序 创建一个用于创建 ListView 的游标 Override public Cursor query Uri uri String projection String select
  • 如何模糊视图

    I have a view having different colors I need to blur the background of that view for example There is LinearLayout in wh
  • 从 JSON 数组创建标记 php mySQL Google Maps v2 android

    我正在尝试从 mySQL 数据库在 Google Maps v2 上创建标记 但它不起作用 地图确实出现了 但没有标记 谁能告诉我出了什么问题以及我需要改变什么 我也尝试过让 getDouble 为 getDouble 0 和 getDou
  • Android 生命周期哪个事件在生命周期中只触发一次?

    我读过一些博客并访问了一些网站 我想知道哪个事件在生命周期中只触发了一次 阅读博客后我意识到onCreate 方法在生命周期内仅触发一次 我不知道我是对还是错 现在我的问题是 我想触发任何仅在我更改横向或纵向方向时触发一次的事件 而不是在启
  • 直接在应用程序中评价 Google Play 应用程序 [重复]

    这个问题在这里已经有答案了 我需要在我的 Android 应用程序中设置费率选项 我找到了这个link http www androidsnippets com prompt engaged users to rate your app i
  • 如何从MediaCodec获取解码格式?

    我正在与MediaCodec 我用它来解码 mp4 video MediaCodec 将视频解码为YUV格式 但我需要得到RGBA 一切都很好 但我发现有几种可能的格式 例如YUV420 YUV422等等 因此 据我所知 要进行转换 我需要
  • Gradle创建多项目Jar

    因此 从 Gradle 和 Android Studio 诞生之初起 我就一直在使用它们 然而 我发现自己用头撞墙的次数有时远远超过了它的价值 我花了一天半的时间试图解决我目前的困境 在我工作的地方 我们使用很多共享库项目 这意味着与 Gr
  • 如何在按下硬件主页按钮时关闭所有活动?

    我有一个应用程序 其中有 5 个活动 一个菜单活动和另外 4 个子活动附加到菜单屏幕 所以我可以选择任何活动 然后返回菜单 假设我像这样四处走动 菜单 gt 活动 1 gt 菜单 gt 活动 3 gt 活动 2 gt 菜单 现在我按 主页
  • 是否可以用 C# 为 Android 编写应用程序?

    我们都知道Android运行Dalvik VM程序 通常开发人员用 Java 编写程序并将其编译为 Dalvik 字节码 我想知道是否有可能创建一个可以接受 C 代码并将其编译为 Dalvik 字节码的编译器 嗯 这是一种选择 或者您可以在
  • Android onclicklistener 在第一次点击时不起作用

    我有一个带有默认文本的 EditText 现在 当用户单击该 EditText 时 默认文本应该更改为某些内容 我所拥有的是 我单击 EditText 光标出现在默认文本之后 没有任何反应 当我再次单击时 onClickListener 就
  • 图标和导航视图之间的左边距

    我必须在图标和图标之间添加左边距NavigationView 如下图中箭头所示 我知道根据谷歌规范 这个边距必须有16dp但我需要改变它 我努力了

随机推荐

  • 如何检查项目的 vue.js 版本?

    I use 乌班图16 04我想知道如何检查vue js version我的项目使用的 我怎么做 让我们总结一下 jonrsharpe JamesAMohler 和 MartinCalvert 的解决方案 供寻求快速答案的朋友参考 Run
  • Guice - 使用静态辅助方法将依赖项注入到类中

    我对 Guice 还很陌生 之前没有使用过任何 DI 框架 在阅读了官方 wiki 和许多其他文档后 我仍然无法完全理解它 在我的特定情况下 我想编写一个使用其他 待注入 类的 EL taglib 函数 由于所有 taglib 函数都必须声
  • Ionic 4 标签样式

    我试图为 ionic 4 应用程序中的选项卡提供渐变背景 我还尝试为每个页面设置不同的颜色 渐变 背景 控制每个页面的 scss 中选项卡的样式 想要的效果如下 For
  • 使用 Roslyn 编译 xaml [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有办法使用Roslyn编译器来编译WPF UserControl 假设您想要编译一个包含标准 C
  • Resharper 中的 Jasmine 测试不会停止执行

    我使用 Visual Studio 2012 和 ReSharper 8 2 来测试我的 JavaScript 代码 到目前为止 使用 QUnit 工作得很好 在编写 Jasmine 测试时 当在文件开头添加以下行时 测试不会停止
  • Flexbox 等高不起作用

    我正在尝试将 flexbox 与 susy 一起使用 但不知何故它不起作用 我尝试了我在这里找到的所有问题 但它总是会中断 并且文本容器和图像容器不能保持相同的高度 移动视图从 38 em 开始工作 但不能 这就是我尝试过的 一旦我添加di
  • C++ 阻塞工作队列

    这个问题应该比我上几个简单一点 我在我的程序中实现了以下工作队列 Pool h tpool class It s always closed glasses ifndef POOL H define POOL H class tpool p
  • ImageMagick:此图像格式“”没有解码委托@ error/constitute.c/ReadImage/504

    Problem ImageMagick Convert 无法裁剪图像 看起来它不识别图像类型 我尝试过的 我在网上搜索了一下 发现了几个类似的问题 但不是我的 我尝试过他们的解决方案 包括 通过brew卸载并重新安装ImageMagick
  • 在Java中使用“instanceof”[重复]

    这个问题在这里已经有答案了 instanceof 运算符的用途是什么 https stackoverflow com questions 7313559 what is the instanceof operator used for 我了
  • 不同处理器上的浮点计算是否会有所不同? (+在 C# 和 C 之间传递双精度数)

    我有一个用 C 编写的应用程序 它也调用一些 C 代码 C 代码获取一些双精度值作为输入 对其执行一些计算 将其传递到本机层 由本机层对其执行自己的计算 然后传回 C 层 如果我在不同的机器上运行相同的exe dll 它们都是Intel的x
  • 从 gradle 中的多个依赖项中排除同一组?

    我的 Android 项目的应用程序模块的 build gradle 中有以下代码 implementation com google firebase firebase core 16 0 1 exclude group com andr
  • XCode 4,签名无效 (-19011)

    我要疯了 我正在使用 XCode 4 最后我完成了我的应用程序 我正准备将其提交到 App Store 上传到 iTunes Connect 我尝试构建存档 但出现了此警告 Application failed codesign verif
  • cx_freeze 错误:找不到模块 tkinter

    我开始遇到一些 miniconda 和 PyCharm 问题 所以我不得不重新安装它们 但是 现在当我使用 cx freeze 创建 exe 时 出现以下错误 这是我的代码 from tkinter import from tkinter
  • 为什么 32 位处理器只能寻址 4GiB 内存,即使字大小很大?

    Until now I thought that a 32 bit processor can use 4 GiB of memory because 232 is 4 GiB but this approach means process
  • 如何查找 Word 段落的页码?

    我正在尝试解析 Word 文档 并且我要查找的信息应仅位于第一页 有没有办法获取段落的页码 foreach Word Paragraph p in document Paragraphs pageNo if pageNo 1 p Range
  • 如何在 Spring Batch 中使用 Hsqldb 解决此 SQLTransactionRollbackException?

    我正在开发一个需要定期执行作业的 Spring Batch 应用程序 这是我的配置文件的一个片段 它设置用于事务处理的内存 hsqldb 数据库 Bean public SimpleJobLauncher simpleJobLauncher
  • 删除 Primefaces 组件中的所有样式?

    是否可以从 Primefaces 组件中删除所有样式 我的意思是 组件集很好 但必须手动覆盖每个组件的每一点以使组件样式适合我的应用程序的整体设计 这并不好 我不能花几个小时使用 Firebug 来查找它使用哪些类等等等 那么有没有办法删除
  • 应用动态实施

    我正在尝试将 Appdynamics 添加到我的应用程序中 我正在执行以下步骤 https docs appdynamics com display PRO40 Instrument an Android Application Instr
  • 检查 C 中的数组是否对称

    我正在研究一个示例问题 它要求我检查用户输入的数组是否对称 我已经弄清楚如何通过创建另一个数组 以相反的顺序复制第一个数组 然后检查它们是否彼此相等来做到这一点 如下面的代码所示 include
  • 如果禁用 GPS,三星手机将无法获取位置信息

    我使用三星手机通过 LocationManager API 获取位置 如果禁用 GPS 我无法获取位置 通过网络提供商我无法获取位置 这是代码 这在 HTC 和索尼甚至禁用 GPS 中都可以正常工作 但在三星手机中则不行 public Lo