2015-10-05 65 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