मैं मैं पर काम कर रहा था और यहाँ एक जीपीएस आरपीजी के साथ एक अपेक्षाकृत समान मुद्दा मिला है कुछ चीजें मैंने देखा हैं वह समस्या है क्योंकि आप केवल जांच कर रहे हैं कि स्थान शून्य है या नहीं।
तुम भी डिवाइस की स्थान सेवाएं वास्तव में कुछ भी करने से पहले लागू किए गए हैं यह सुनिश्चित करना चाहते हो सकता है:
private boolean doLocationsCheck(){
if(!checkLocationEnabled()){
final CharSequence[] items = {"Yes", "No"};
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setCancelable(false);
builder.setTitle("Location must be enabled to play this game! Would you like to enable it now?");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
final int i = item;
runOnUiThread(new Runnable() {
public void run() {
if(i == 0){
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
quit();
}
else{
quit();
}
}
});
}
}).show();
AlertDialog alert = builder.create();
return false;
}
else {
return true;
}
}
private boolean checkLocationEnabled(){
LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE);
boolean enabled = service.isProviderEnabled(LocationManager.GPS_PROVIDER) || service.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
return enabled;
}
के बाद मुझे यकीन है कि प्रदाताओं इसलिए की तरह एक कनेक्शन उपलब्ध मैं सेटअप कर रहे हैं बनाया है:
private void setupLocation() {
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(final Location location) {
runOnUiThread(new Runnable() {
public void run() {
mLocation = location;
//Log.d(TAG, "Latitude: " + location.getLatitude() + " - Longitude: " + location.getLongitude());
saveLocation();
}
});
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
//Can set to GPS or network, whichever is available
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
स्थान तब भी एक वैश्विक चर में सेट किया जाता है जब इसे अद्यतन किया जाता है, और फिर वरीयताओं में सहेजा जाता है। इस तरह, प्रदाता सक्षम होने की स्थिति में, लेकिन स्थान पुनर्प्राप्त करने में कुछ समय लग रहा है, उपयोगकर्ता अब भी अपने अंतिम ज्ञात स्थान के साथ एप्लिकेशन का उपयोग जारी रख सकता है जिसे ऐप संग्रहीत किया जाता है (प्रोग्राम के लिए पहली बार लागू नहीं होता है दौड़ हैं)।
मुझे पता है कि मैंने वहां बहुत कुछ छोड़ दिया है, लेकिन मुझे लगा कि यह वास्तव में आवश्यक नहीं था क्योंकि यह या तो स्वयं व्याख्यात्मक था या पहले के जवाब में पहले ही समझाया गया था।
चीयर्स ~
हो सकता है कि आपकी Google खोज उस समय कथन में प्रवेश करने के समय तैयार न हो? मैं Google मानचित्र जावास्क्रिप्ट एपीआई का उपयोग करता हूं और एक कॉलबैक फ़ंक्शन होता है जिसे खोज पूर्ण होने पर बुलाया जाता है। यह नहीं पता कि यह एंड्रॉइड पर कैसे काम करता है। –
इसका संदर्भ लें [LINK] (http://stackoverflow.com/questions/9990209/cant-mark-while-showing-the-current-location-in-mapview/9990668#9990668) इसमें आपके बारे में एक साफ और स्पष्ट स्पष्टीकरण है आवश्यकता और मार्कर कैसे रखें। –
मैं मार्करों को बस ठीक कर सकता हूं, मेरी समस्या यह है कि यह शुरुआत पर ठीक स्थान नहीं है। मैंने इस कोड को मेरे निर्माण विधि में भी रखा है, यह सिर्फ मेरे अन्य कथन के लिए उम्मीद कर रहा है। क्या मुझे अपनी अनुमतियों के साथ क्या करना है? –