2016-08-10 46 views
1

好吧,這是一個很奇怪的問題,但我可能錯過了一些很明顯的東西。我使用這個功能當前訪問用戶位置:訪問位置服務時,Android應用程序缺失狀態欄圖標

public String[] getGeoCoords() { 
    String[] geoCoords = new String[2]; 
    String mprovider = locationManager.getBestProvider(criteria, false); 
    if (mprovider != null && !mprovider.equals("")) { 
     if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
      return geoCoords; 
     } 
     Location loc = locationManager.getLastKnownLocation(mprovider); 
     if(loc== null) 
      loc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
     if (loc == null) 
      loc = locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); 
     if (loc == null) 
      loc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     geoCoords[0] = String.valueOf(loc.getLatitude()); 
     geoCoords[1] = String.valueOf(loc.getLongitude()); 
    } 
    return geoCoords; 
} 

這將返回預期的位置,但訪問用戶位置時,不會出現在狀態欄上,你通常得到的圖標。

在我的清單我有

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 

任何想法?

+0

嘗試添加此權限<使用權限android:name =「android.permission.ACCESS_NETWORK_STATE」/> –

回答

0

您正在訪問getLastKnownLocation(),它直接返回最後一個可用位置,否則返回null。

當請求這樣的位置更新你所談論的圖標來..

LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE); 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() { 
      @Override 
      public void onLocationChanged(Location location) { 

      } 

      @Override 
      public void onStatusChanged(String provider, int status, Bundle extras) { 

      } 

      @Override 
      public void onProviderEnabled(String provider) { 

      } 

      @Override 
      public void onProviderDisabled(String provider) { 

      } 
     }); 

因此,儘管搜索衛星,它表明,GPS圖標,當它發現一個onLocationChanged(Location location)將被用捕獲的位置。

+0

啊,這很有道理!謝謝。 – MarkDev

相關問題