2015-10-05 63 views
1

我有这种情况:我的Android服务位置已启用,但未启用我的GPS(GPS符号)。明确识别Android服务位置和GPS是否在后台启用

service location

gps

我想检查我的服务位置启用与否和发射活动。 我想检查我的gps(请参阅gps打印屏幕 - gps符号)是否已启用并向用户吐司消息。

下面的代码检查是否启用了我的gps(请参阅gps打印屏幕 - gps符号)或仅启用,但不检查服务位置是否启用。< ==这是我需要...... THX

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

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

我需要找出两种情况和处理这个...

让想我有我的GPS(背景)禁用。 (请参阅gps打印屏幕 - gps符号) 和 我已启用我的服务位置。

+0

可能的重复http://stackoverflow.com/questions/843675/how-do-i-find-out-if-the-gps-of-an-android-device-is-enabled/7990939#7990939 – cafebabe1991

+0

这就是交易。我使用locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)来检查gps是否已禁用如何知道我的服务位置是否已启用... – Al2x

+0

看起来您只有网络提供程序已启用,您也可以使用与您检查相同的方式GPS提供商 –

回答

1

如果您使用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将是错误的。如果只关闭了GPS,但位置服务已开启,则isGpsEnabled将为false,但isNetworkEnabled将为true。如果设备已打开位置服务(包括GPS),则两者都是正确的。

+0

明白了。 .. – Al2x