我想要實現某些我雖然很簡單但現在最終變得有點困惑的東西。 我想以這種方式獲得用戶的座標從GPS提供商明確獲取座標
- 是否有GPS提供商?
- 如果是的話,得到的GPS
- 否則座標,如果有一個網絡提供商從那裏
讓他們我同時使用locationManager
和onLocationChange()
,並與locationClient
新的API,但我無法從我的設備的GPS獲取座標,只能從網絡獲取。
這是一個與locationManager
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// Define the criteria how to select the locatioin provider -> use default
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
// Initialize the location fields
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
// new AlertDialog.Builder(v.getContext()).setMessage("Provider " + provider + " has been selected.").show();
onLocationChanged(location);
System.out.println(location.getLatitude());
Intent intent = new Intent(getApplicationContext(),DriveMeActivity.class);
intent.putExtra("monument", monument);
intent.putExtra("latitude", location.getLatitude());
intent.putExtra("longitude",location.getLongitude());
startActivity(intent);
} else {
new AlertDialog.Builder(con).setMessage("Location not available").show();
System.out.println("Location not available");
System.out.println("Location not available");
}
,這是一個與locationClient
GooglePlayServicesUtil.isGooglePlayServicesAvailable(v.getContext())
if(mLocationClient.getLastLocation()!=null)
Toast.makeText(getApplicationContext(),
mLocationClient.getLastLocation().getLongitude()+ "|" +
mLocationClient.getLastLocation().getLatitude() ,
Toast.LENGTH_SHORT).show();
您需要展示更多代碼。不知何故,即使您認爲它應該是「是」,您的「有沒有GPS提供商」的請求也會變得「不」。也許你的應用程序不允許訪問定位服務(隱私?)。 – Floris
好吧,我現在將發佈代碼。我在清單中擁有所有必要的權限,如果有可用的gps提供程序,我也檢查過它,但它返回的位置爲空 – Libathos
http://stackoverflow.com/a/16393534/2345913 – CRUSADER