2016-03-05 107 views
0

我已經搜索並實施了各種方法來獲取我的位置。但是無論我做什麼,位置都是空的。它是空的。我的應用程序幾乎完成,這是唯一使問題成爲我的代碼的東西。位置正在返回null LocationManager.getlastlocation Gps提供商

public Location getlocation() { 
    Location loc = null; 
    LocationManager lm = (LocationManager) getContext().getSystemService(Context.LOCATION_SERVICE); 
    if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
     if(lm.isProviderEnabled(LocationManager.GPS_PROVIDER)){ 
     loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     } 
    } 
return loc; 
} 
    @Override 
public void onMapReady(GoogleMap googleMap) { 
    setmap(googleMap); 
} 

public void setmap(final GoogleMap map) { 
    googlemap = map; 
    if (googlemap != null) { 
     if (sharedPreferences.getBoolean(CustomAlarm.satellite, false)) { 
      googlemap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
     } else { 
      googlemap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
     } 
     if(getlocation() == null){ 
      Toast.makeText(getContext(),"You don't live on this earth or Location null",Toast.LENGTH_LONG).show(); 
     } 

在評論之前請注意這一點。

1 - 我調試我的手機三星J1 API級別19

2 - 已啓用位置和GPS。

3-試圖找到我的位置在谷歌地圖。

4-還啓用了Google位置記錄。

但沒什麼請幫忙。

回答

0

有同樣的問題一次。 我通過請求位置更新來解決它。

Google recommendations about it

過了一段時間,地點被抓獲。

+0

您使用了fusedlocationApi ??? –

+0

不,這是關鍵。只是GPS –

0

你是這裏面

if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { } 

請求您的位置,這意味着如果授予權限

loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);當允許IS授予(它可能是),因此將保持相同的值,您分配它前面Location loc = null;所以空被永遠不會執行。

你應該if語句改爲

if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { 

如果該位置的權限IS授予然後給我的位置這意味着。

+0

它仍然是 –

+0

然後'lm.isProviderEnabled(LocationManager.GPS_PROVIDER)'返回false。難道你不能檢查'loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER)'行是否得到執行嗎? –

+0

剛剛添加了一個檢查語句,它不是錯誤的。 –

相關問題