आप Android में जीपीएस अनुप्रयोगों का परीक्षण कैसे करते हैं? क्या हम Android emulator का उपयोग करके इसका परीक्षण कर सकते हैं?एंड्रॉइड में जीपीएस परीक्षण
उत्तर
हां।
यदि आप एक्लिप्स एडीटी प्लगइन का उपयोग करके विकसित करते हैं, तो एम्यूलेटर लॉन्च करने के बाद डीडीएमएस परिप्रेक्ष्य खोलें और एमुलेटर नियंत्रण दृश्य देखें। एक स्थान नियंत्रण अनुभाग है जो आपको निश्चित अक्षांश और देशांतर निर्देशांक, या जीपीएक्स (जीपीएस एक्सचेंज प्रारूप) या केएमएल (कीहोल मार्कअप भाषा) फ़ाइलों को भेजने की अनुमति देता है यदि आप नियमित अंतराल पर एकाधिक निर्देशांक भेजना चाहते हैं (एक विशिष्ट मार्ग यात्रा करने के अनुकरण के लिए) ।
वैकल्पिक रूप से, आप बस एमुलेटर को टेलनेट और कमांड लाइन है, जो निश्चित अक्षांश और देशांतर निर्देशांक के साथ-साथ NMEA डेटा वाक्य का समर्थन करता है से भू आदेश का उपयोग कर सकते हैं: एक उपयोग करने के लिए
telnet localhost 5554
geo fix -82.411629 28.054553
geo nmea $GPGGA,001431.092,0118.2653,N,10351.1359,E,0,00,,-19.6,M,4.1,M,,0000*5B
हो सकता है कि आप चाहते हैं एक यूनिट परीक्षण, तो आप इस कोशिश कर सकते हैं ताकि:
public class GPSPollingServiceTest extends AndroidTestCase {
private LocationManager locationManager;
public void testGPS() {
LocationManager locationManager = (LocationManager) this.getContext().getSystemService(Context.LOCATION_SERVICE);
locationManager.addTestProvider("Test", false, false, false, false, false, false, false, Criteria.POWER_LOW, Criteria.ACCURACY_FINE);
locationManager.setTestProviderEnabled("Test", true);
// Set up your test
Location location = new Location("Test");
location.setLatitude(10.0);
location.setLongitude(20.0);
locationManager.setTestProviderLocation("Test", location);
// Check if your listener reacted the right way
locationManager.removeTestProvider("Test");
}
}
इसके लिए काम करने के लिए आप भी AndroidManifest.xml करने के लिए एक आवश्यक अनुमति की जरूरत है:
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
हाय, क्या आप कृपया थोड़ा और बता सकते हैं विस्तृत करें कि यह कोड कैसे काम करता है। स्थान घटनाओं का जवाब देने वाली गतिविधि वास्तव में इसका परीक्षण कैसे की जाएगी? – Petar
हाय, यह थोड़ी देर हो गया है, लेकिन देखते हैं कि मैं इसे एक साथ फिर से प्राप्त कर सकता हूं: स्थान प्रबंधक के साथ आपको सिस्टम जीपीएस लोकेशन मैनेजर मिलता है जो आपके ऐप को स्थिति में बदलावों के बारे में सूचित करता है। दूसरी पंक्ति में आप एक नया स्थान प्रदाता जोड़ते हैं। चूंकि आप एक यूनिट परीक्षण चलाएंगे, आपके पास पंजीकृत कोई अन्य स्थान प्रदाता नहीं होगा। जहां मैंने "// अपना परीक्षण सेट अप करें" टिप्पणी चिह्नित की है, आप उन घटकों को निष्क्रिय कर सकते हैं जिन्हें आप परीक्षण करना चाहते हैं, जो स्थान प्रबंधक से स्थितियों में परिवर्तनों को सुनना चाहिए। – Mallox
उसके बाद आप स्थान प्रबंधक और आपके कोड पर एक नया स्थान भेजते हैं जिसे आप परीक्षण करना चाहते हैं, उस जानकारी के साथ कुछ करना चाहिए, ताकि यदि आप सही काम करते हैं तो आप बाद में जांच सकते हैं। अंत में आप परीक्षण प्रदाता को हटाना चाहते हैं, ताकि परीक्षण के लिए कई स्थान प्रदाता न हों, यदि आप अन्य परीक्षण लिखते हैं। (भले ही जूनिट शायद इसे ठीक से साफ कर दे) – Mallox
मेरा सुझाव है कि आप परीक्षा लिखते हैं जो श्रोता वर्ग को स्थान वस्तु भेज रहा है जिसे आप परीक्षण करना चाहते हैं। इस बात को ध्यान में रखते हुए आपको कुछ सहायक तरीकों की आवश्यकता होगी जो स्थान वस्तुओं का उत्पादन करने में सक्षम होंगे।
उदा .:
सबसे पहले आप तय निर्देशांक (न्यूयॉर्क जैसे केंद्र) के साथ एक स्थान भेजें।
// परीक्षण करता है, तो सब कुछ ठीक
है से आप एक समन्वय है जहाँ से 100 मीटर Appart पहले समन्वय है भेजें। आप कार्य के साथ ऐसा कर सकते हैं मैं हाल ही में लागू: https://stackoverflow.com/a/17545955/322791
// परीक्षण करता है, तो सब कुछ ठीक
यह आम बात है कि जीपीएस तरीकों समय से जुड़े हुए हैं है। मेरा सुझाव है कि आप श्रोता वर्ग पर विधि getNow() को लागू करें और जब भी आपको वर्तमान समय की आवश्यकता हो, इसे कॉल करें।
long getNow() {
if (isUnitTesting) {
return unitTestTime;
} else {
System.getcurrenttimemillis();
}
}
इकाई परीक्षण वातावरण में आप बस obj.isUnitTesting = सच और obj.unitTestTime किसी भी समय आप चाहते हैं करने के लिए सेट। उसके बाद आप श्रोता को पहला स्थान भेज सकते हैं, फिर आप समय (+ x सेकेंड) बदल सकते हैं और एक और स्थान भेज सकते हैं ...
इस तरह से अपने एप्लिकेशन का परीक्षण करना बहुत आसान होगा।
Mallox कोड के अलावा इस वास्तविक जीपीएस स्थान के अलावा कृत्रिम स्थान के लिए sulotion है:
public class GPSPollingServiceTest extends AndroidTestCase {
private LocationManager locationManager;
public void testGPS() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
LocationManager locationManager = (LocationManager) this.getContext().getSystemService(Context.LOCATION_SERVICE);
List providers = locationManager.getAllProviders();
if(!providers.contains(TEST_MOCK_GPS_LOCATION)) {
locationManager.addTestProvider(TEST_MOCK_GPS_LOCATION, false, false, false, false, false, false, false, Criteria.POWER_LOW, Criteria.ACCURACY_FINE);
locationManager.setTestProviderEnabled(TEST_MOCK_GPS_LOCATION, true);
// Set up your test
Location location = new Location(TEST_MOCK_GPS_LOCATION);
location.setLatitude(34.1233400);
location.setLongitude(15.6777880);
location.setAccuracy(7);
location.setTime(8);
location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
locationManager.setTestProviderLocation(TEST_MOCK_GPS_LOCATION, location);
Method locationJellyBeanFixMethod = Location.class.getMethod("makeComplete");
if (locationJellyBeanFixMethod != null) {
locationJellyBeanFixMethod.invoke(location);
}
} else {
// Check if your listener reacted the right way
locationManager.removeTestProvider(TEST_MOCK_GPS_LOCATION);
}
}
}: TEST_MOCK_GPS_LOCATION एक स्ट्रिंग
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = null;
List providers = lm.getAllProviders();
for (Object provider : providers) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
Location loc = lm.getLastKnownLocation((String) provider);
if (provider.equals(TEST_MOCK_GPS_LOCATION)) {
mLastLocation = loc;
}
}
परीक्षण वर्ग में यह है
उम्मीद है कि यह आपकी मदद करेगा
अपने एमुलेटर के विस्तारित नियंत्रण में (अपने एमुलेटर के बगल में नियंत्रण पट्टी पर "..." पर क्लिक करें) स्थान टैब है, जहां आप मैन्युअल रूप से अलग-अलग स्थानों (अक्षांश/देशांतर/ऊंचाई) इनपुट कर सकते हैं और उन्हें भेज सकते हैं आभासी डिवाइस, या एक जीपीएक्स या एक केएमएल फ़ाइल से वांछित गति पर जीपीएस डेटा प्लेबैक सेटअप करें जिसे आप आयात कर सकते हैं।
संपादित करें: यह डिफ़ॉल्ट एंड्रॉइड एमुलेटर है जिसके बारे में मैं बात कर रहा हूं।
- 1. एंड्रॉइड जीपीएस वर्तमान स्थान
- 2. एंड्रॉइड जीपीएस टाइमआउट
- 3. एंड्रॉइड डिवाइस (जीपीएस) दिशा
- 4. आईओएस में जीपीएस सिमुलेशन
- 5. जीपीएस
- 6. जीपीएस एंड्रॉइड - केवल एक बार
- 7. जीपीएस समन्वय प्राप्त करें: एंड्रॉइड
- 8. एंड्रॉइड जीपीएस पोस्टियन सटीकता सर्कल
- 9. फोनगैप एंड्रॉइड और जीपीएस उपग्रह
- 10. एंड्रॉइड जीपीएस कितना सटीक है?
- 11. एंड्रॉइड जीपीएस विलंब डेटाबेस को भेजते समय
- 12. एक एंड्रॉइड जीपीएस ट्रैकिंग एप्लिकेशन बनाएं
- 13. एंड्रॉइड में समय-समय पर जीपीएस स्थान कैसे ढूंढें
- 14. जीपीएस के बिना एंड्रॉइड में वर्तमान स्थिति का पता लगाने
- 15. एंड्रॉइड एमुलेटर का जीपीएस स्थान गलत समय देता है
- 16. कैसे गूगल मानचित्र जीपीएस
- 17. एंड्रॉइड एप्लिकेशन में एफपीएस परीक्षण
- 18. जीपीएस सिस्टम
- 19. जीपीएस पैरामीटर
- 20. आईओएस सिम्युलेटर और जीपीएस
- 21. जीपीएस गंतव्य
- 22. Android सक्षम और अक्षम जीपीएस
- 23. मोबाइल जीपीएस वेब एप्लिकेशन
- 24. जीपीएस मैनिफेस्ट: ऐप में जीपीएस वैकल्पिक है, इसे जीपीएस कम उपकरणों पर भी उपलब्ध करा देना चाहते हैं
- 25. एंड्रॉइड लिखने जेपीईजी पर EXIF जीपीएस अक्षांश और देशांतर
- 26. जीपीएस समय के माध्यम से एंड्रॉइड डिवाइस सिंक?
- 27. एंड्रॉइड परीक्षण: 'java.lang.ClassNotFoundException'
- 28. एंड्रॉइड ऐप परीक्षण
- 29. एंड्रॉइड पर जीपीएस प्रदाता से * मोटे * स्थान प्राप्त करें
- 30. एंड्रॉइड पर जीपीएस चालू करने के लिए कैसे करें
वास्तविक डिवाइस पर परीक्षण के बारे में क्या - आप अपने जीईओ को एडीबी पर कैसे सेट कर सकते हैं? – fijiaaron
बहुत बहुत धन्यवाद। मैंने बहुत सारी जांच की, और अब मेरे पास जवाब है! – eav
हाय। मुझे एक ही समस्या थी, मैं "भौगोलिक फिक्स" कमांड का उपयोग कर एक असली डिवाइस पर परीक्षण करना चाहता था, यह पता चला कि यह बॉक्स से बाहर नहीं है इसलिए मैंने एक ऐप लिखा जो उस कार्यक्षमता को प्रदान करता है :) [मॉकजीओफिक्स] (https: // play .google.com/store/apps/details? id = github.luv.mockgeofix और hl = en) और [स्रोत कोड] (https://github.com/luv/mockgeofix/) – luv