6

मै मैप पर उपयोगकर्ता के वर्तमान स्थान को दिखाने के लिए MapView का उपयोग कर रहा हूं।MyLocationOverlay या LocationManager वर्तमान स्थान को अपडेट करने के लिए

  • मैं वर्तमान स्थान आकर्षित और यह विस्तार इस कदम पर उपयोगकर्ताओं स्थान की ट्रैकिंग की अनुमति के लिए और कस्टम के लिए करने के लिए MyLocationOverlay उपयोग कर सकते हैं: स्थान अपडेट करने के लिए, जबकि उपयोगकर्ता इस कदम पर है, मैं एक विकल्प के लिए है मार्कर। MyLocationOverlay के साथ समस्या यह है कि मैं आवृत्ति को नियंत्रित नहीं कर सकता जिसके साथ डिवाइस जीपीएस से स्थान का अनुरोध करता है। मैं यहां बैटरी नाली के बारे में चिंतित हूं।
  • मैं स्थान प्रबंधक का उपयोग कर सकता हूं और जीपीएस से स्थान प्राप्त करने के लिए requestLocationUpdates का उपयोग करके सदस्यता ले सकता हूं। यहां आवृत्ति पर अधिक नियंत्रण है जिसके साथ जीपीएस पूछताछ की जाती है। मैं एक स्थान लिस्टनर को हुक कर सकता हूं और वहां कोड लिख सकता हूं।

लेकिन मैंने यहां SO पढ़ा है कि यह स्थान प्रबंधक और MyLocationOverlay का उपयोग करने के लिए अच्छा दृष्टिकोण नहीं हो सकता है।

यह भी मान लें कि मेरा ऐप एक स्थान आधारित ऐप है, जहां उपयोगकर्ता को स्थानांतरित किया जाना चाहिए, उसे स्थानांतरित किया जाना चाहिए।

क्या लोग सुझाव दे सकते हैं कि कार्यान्वित करने का सबसे अच्छा तरीका कौन सा है और बैटरी पर अपेक्षाकृत कम प्रभाव पड़ता है।

ध्यान दें कि मैं एंड्रॉइड में एक नौसिखिया हूं, इसलिए किसी भी स्पष्ट गलतियों को क्षमा करें।

अग्रिम धन्यवाद, एंडी

+0

क्या जीपीएस प्रदाता अनिवार्य है?मेरा मतलब है कि आप परिशुद्धता चाहते हैं, है ना? – overbet13

+0

हाँ मुझे सटीकता चाहिए। नेटवर्क स्थान की तुलना में जीपीएस की प्राथमिकता कम है। लेकिन अभी भी मेरा सवाल खड़ा है। – andy

+0

ठीक है, आप एक ही समय में सटीक और कुशल नहीं हो सकते हैं। यदि आपको सटीक स्थान जानकारी की आवश्यकता है, तो पहले संस्करण (स्वयं द्वारा प्रस्तावित) का उपयोग करें। – overbet13

उत्तर

2

मैं का उपयोग कर लिटिल Fluffy स्थान - अद्यतन या दूरी के लिए यह एक पुस्तकालय, आप की स्थापना के समय, इस पुस्तकालय एक प्रसारण रिसीवर बनाने के लिए, LocationListener लागू करता है, एन आपके आवेदन जब स्थान परिवर्तन को सूचित ।

सरल, तेज़, आसान!

देखें this लिंक:

स्थान के बाद बदल गया है, नक्शे पर अपने ओवरले अद्यतन! =)

यदि आपको आवश्यकता है, तो मैं स्थानों के लिए अपना पूरा समाधान भेजता हूं।

+1

दोस्त क्या मैं बता सकता हूं कि मैं इस पुस्तकालय का उपयोग कैसे कर सकता हूं? –

1

का उपयोग करते हुए लिटिल Fluffy स्थान 1º:

प्रकट में

:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-feature android:name="android.hardware.location" android:required="true" /> 
<uses-feature android:name="android.hardware.location.gps" android:required="false" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 


<Application...> 
<service android:name="com.littlefluffytoys.littlefluffylocationlibrary.LocationBroadcastService" /> 

    <receiver android:name="com.littlefluffytoys.littlefluffylocationlibrary.StartupBroadcastReceiver" android:exported="true"> 
     <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 
    <receiver android:name="com.littlefluffytoys.littlefluffylocationlibrary.PassiveLocationChangedReceiver" android:exported="true" /> 

2º कक्षा बनाएं आवेदन

public class YourApplication extends Application { 
    public void onCreate(){ 
     super.onCreate(); 
     LocationLibrary.showDebugOutput(true); 
     LocationLibrary.initialiseLibrary(getBaseContext(), 0, 2 * 60 * 1000, "com.yourpackage.broadcastpackage");  
    } 

    public static Context getAppContext() { 
     return ApplicationVexPromoter.context; 
    } 
} 

फैली को 3º बनाएं प्रसारण रिसीवर

public class Broadcast extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     final LocationInfo locationInfo = (LocationInfo) intent.getSerializableExtra(LocationLibraryConstants.LOCATION_BROADCAST_EXTRA_LOCATIONINFO); 

    } 
} 

और उपयोग:

अपनी गतिविधि में

:

public class YourActivity extends Activity { 

LocationInfo info; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.id.yourview); 
     info = new LocationInfo(getBaseContext()); 
     double latitude = info.lastLat; 
     double longitude = info.lastLong; 
    } 
} 

अधिक की आवश्यकता है? Please refer this

मेरे लिए काम करता है!

+0

मैं इसे अपने कोड में जोड़ रहा हूं, लेकिन प्रसारण रिसीवर कभी नहीं कहा जाता है। मैं कहीं भी आपके कोड में नहीं देखता जो 'ब्रॉडकास्ट' ब्रॉडकास्ट रिसीवर का संदर्भ देता है। वह सेट कहां है? – Darren

संबंधित मुद्दे