android studio 中的 GPS 状态 - API 级别 29

Posted

技术标签:

【中文标题】android studio 中的 GPS 状态 - API 级别 29【英文标题】:GPS status in android studio - API level 29 【发布时间】:2021-07-20 00:53:27 【问题描述】:

我正在使用面向 API 29 设备的 java 中的 android studio 编写一个 android 应用程序。我编写了一个 GPSReceiver(它扩展了 BroadcastReceiver),我需要知道 GPS 状态是否发生了变化(即添加一个位置监听器)。

在早期版本的 Android 中,我知道这可以通过

ContentResolver contentResolver = context.getContentResolver();
int state = Settings.Secure.getInt(contentResolver, Settings.Secure.LOCATION_MODE);
Log.i(TAG, "GPS status changed, new state = " + state);

if (state == Settings.Secure.LOCATION_MODE_OFF)
  do_smth;
else
  do_smth_else;

在 Android 11(API 级别 30)中,下一个 sn-p 似乎可以为我做这件事。

boolean state = intent.getIntExtra(LocationManager.EXTRA_LOCATION_ENABLED, -1);

if (state)
  do_smth;
else
  do_smth_else;

但是,我不知道如何在 API 29 中获得这种确切的行为。

【问题讨论】:

【参考方案1】:

你可以试试这个代码,它对我有用

public boolean isGPSOn() 
    boolean check = false;
    LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    if (locationManager != null) 
        check = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    
    return check;

【讨论】:

以上是关于android studio 中的 GPS 状态 - API 级别 29的主要内容,如果未能解决你的问题,请参考以下文章

phonegap 中的 GPS 状态

如何查看phonegap中的gps状态?

我想在 Android Studio 中给出经度和纬度,我手机的 gps 会跳到那个位置

使用 Android Studio 在 Android 上通过 Turn by Turn GPS 导航

不适用于 Android Studio-locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this)

Android studio解析含有GPS地理坐标的Json格式数据