android - 清楚地识别是否在后台启用了android服务位置和gps

标签 android gps

我有这种情况:我的 android 服务位置已启用,但我的 gps(gps 符号)未启用。

service location

gps

我想检查我的服务位置是否已启用并启动 Activity 。 我想检查我的 gps(请参阅 gps 打印屏幕 - gps 符号)是否已启用并向用户 toast 消息。

下面的代码会检查我的 gps(请参阅 gps 打印屏幕 - gps 符号)是否已启用,但不会检查服务位置是否已启用。 <== 这就是我需要……谢谢

final LocationManager locationManager =
            (LocationManager) context.getSystemService(context.LOCATION_SERVICE);

    try {
        gps_enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

我需要确定这两种情况并处理这个...

假设我禁用了 GPS(背景)。 (参见 gps 打印屏幕 - gps 符号) 和 我启用了我的服务位置。

最佳答案

如果您使用 LocationManager要确定哪些位置服务可用,您将能够判断位置服务是打开还是关闭。例如,使用以下代码:

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean isGpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

Log.d("LOCATION SERVICES", "isGpsEnabled="+isGpsEnabled+" isNetworkEnabled="+isNetworkEnabled);

如果设备位置服务关闭,isGpsEnabledisNetworkEnabled 都将为 false。如果仅关闭 GPS,但打开位置服务,则 isGpsEnabled 将为 false,但 isNetworkEnabled 将为 true。如果设备打开了位置服务,包括 GPS,则两者都为真。

关于android - 清楚地识别是否在后台启用了android服务位置和gps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951368/

相关文章:

java - 相机对象总是返回 null

android - 如何使用位置或加速度计或其他方式在 Android 应用程序中获得速度

android - PhoneGap/Cordova 获取 GPS 卫星数量

linux - 需要一个解决方案来同步从 iPerf 和 GPS 接收的数据

android - 在 Android 应用程序中搜索最佳提供商

ios - 通过蓝牙将 GPS 位置发送到 iOS 设备

java - UPNP/DLNA 控制点

android - 如何检测SD卡上是否添加了新文件(Android)

android - 官方 Fragment 开发者指南自相矛盾吗?

android - 在一台设备上安装应用程序的生产和测试版本