मुझे बस उपयोगकर्ता का स्थान प्राप्त करने की आवश्यकता है। पसंदीदा रूप से बिल्कुल सही स्थान, लेकिन यदि यह संभव नहीं है, तो एक मोटा स्थान ठीक होगा।स्थान प्रबंधक और स्थान क्लाइंट उपयोगकर्ता स्थान प्राप्त करने के लिए एक साथ
डॉक्स के अनुसार:
LocationClient.getLastLocation()
Returns the best most recent location currently available.
और
LocationManager.getLastKnownLocation(String)
Returns a Location indicating the data from the last known location fix obtained from the given provider.
अगर मेरी समझ सही है, तो पूर्व मुझे एक बहुत अच्छा परिणाम देगा (या कभी-कभी शून्य) जबकि बाद वाला मुझे एक परिणाम देगा जो शायद ही कभी शून्य होगा।
यह मेरा कोड (सरलीकृत) है
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationClient = new LocationClient(this, this, this);
@Override
public void onConnected(Bundle dataBundle) {
setUserLocation();
}
private void setUserLocation() {
myLocation = locationClient.getLastLocation();
if (myLocation == null) {
myLocation = locationManager.getLastKnownLocation(locationManager.getBestProvider(new Criteria(), false));
if (myLocation == null) {
//I give up, just set the map somewhere and warn the user.
myLocation = new Location("");
myLocation.setLatitude(-22.624152);
myLocation.setLongitude(-44.385624);
Toast.makeText(this, R.string.location_not_found, Toast.LENGTH_LONG).show();
}
} else {
isMyLocationOK = true;
}
}
यह काम कर रहा है, लेकिन मेरे सवाल कर रहे हैं:
getLastLocation
औरgetLastKnownLocation
सही की मेरी समझ है?- क्या यह एक अच्छा दृष्टिकोण है?
- क्या मुझे एक ही गतिविधि में दोनों का उपयोग करने में परेशानी हो सकती है?
धन्यवाद
जानना अच्छा है! मेरे पास पहले से ही Google Play की उपलब्धता को संभालने के लिए कोड है (वास्तव में ऐप सिर्फ इसके बिना काम नहीं कर सकता है)। सबसे पहले मैंने केवल स्थान सेवा का उपयोग किया लेकिन कई बार मुझे इससे अजीब परिणाम मिल गए। स्थान क्लाइंट पर स्विच करने से मुझे बहुत बेहतर परिणाम मिले, लेकिन कई मामलों में नल परिणाम भी जिन्हें मैं पुन: पेश नहीं कर सका। मैंने सोचा था कि एंड्रॉइड सिस्टम किसी स्थान पर अंतिम ज्ञात स्थान रिकॉर्ड कर सकता है जो केवल स्थान सेवा वर्ग के लिए सुलभ होगा, इसलिए ऊपर मेरा कोड। यदि यह सत्य नहीं है, तो केवल स्थान क्लाइंट पर भरोसा करना बेहतर है, है ना? – Androiderson
[आधिकारिक डेवलपर वेब] के इस [प्रवाह] (http://developer.android.com/images/location/getting-location.png) देखें (http://developer.android.com/guide/topics/ स्थान/strategies.html) – Aiapaec