मैं परीक्षण के लिए एंड्रॉइड एमुलेटर में देशांतर और अक्षांश प्राप्त करना चाहता हूं।
क्या कोई मुझे गाइड कर सकता है कि इसे कैसे हासिल किया जाए?
मैं एमुलेटर का स्थान परीक्षण की स्थिति में कैसे निर्धारित करूं?
मैं परीक्षण के लिए एंड्रॉइड एमुलेटर में देशांतर और अक्षांश प्राप्त करना चाहता हूं।
क्या कोई मुझे गाइड कर सकता है कि इसे कैसे हासिल किया जाए?
मैं एमुलेटर का स्थान परीक्षण की स्थिति में कैसे निर्धारित करूं?
जवाबों:
आप टेलनेट के माध्यम से एमुलेटर से कनेक्ट कर सकते हैं। फिर आपके पास एक एमुलेटर कंसोल होता है जो आपको कुछ डेटा दर्ज करने देता है जैसे जियो फिक्स, नेटवर्क आदि।
कंसोल का उपयोग कैसे करें इसके बारे में विस्तार से यहां बताया गया है । कंसोल से कनेक्ट करने के लिए एक कमांड लाइन खोलें और टाइप करें
telnet localhost 5554
फिर आप एक लेटिट्यूड, लॉन्गिट्यूड सेट करने के लिए जियो कमांड का उपयोग कर सकते हैं और यदि आवश्यक हो तो डिवाइस पर ऊँचाई जो जीपीएस प्रोग्राम प्रदाता का उपयोग करके सभी प्रोग्रामों को पास की जाती है। आगे के निर्देशों के लिए ऊपर दिए गए लिंक को देखें।
कंसोल में चलने के लिए विशिष्ट कमांड है
geo fix <longitude value> <latitude value>
मुझे यह साइट एक यथार्थवादी lat / lng खोजने के लिए उपयोगी लगी: http://itouchmap.com/latlong.html
यदि आपको और अधिक की आवश्यकता है, तो एक समन्वय आप एक मार्ग के साथ एक kml फ़ाइल का उपयोग कर सकते हैं और साथ ही यह इस लेख में थोड़ा सा वर्णित है । मुझे इस समय एक बेहतर स्रोत नहीं मिल रहा है।
geo fix
आदेश अगर आप केवल उपलब्ध है auth
पहले। ध्यान देने योग्य बात हो सकती है ...
यहां किसी ने स्वयं एमुलेटर के समाधान का उल्लेख नहीं किया है, इसलिए भविष्य के आगंतुकों के लिए, मैं इसे दृश्यों के साथ साझा करना चाहूंगा।
सबसे पहले, अपना एंड्रॉइड एमुलेटर चलाएं और नीचे दिखाए गए मेनू बटन (3 डॉट्स) पर क्लिक करें:
फिर बाएं फलक से, स्थान का चयन करें और अपनी आवश्यकताओं के अनुसार निर्देशांक बदलें। Send बटन दबाने के बाद , परिवर्तन तुरंत प्रभावी होंगे (मैं आपको बेहतर समझ के लिए Google मानचित्र खोलने की सलाह देता हूं)।
Android स्टूडियो संस्करण: 2.3.3
इसके अलावा, अपने अलग-अलग स्थानों को वास्तविक समय में आपके आवेदन पर आने के लिए, आप GPX फ़ाइल का उपयोग कर सकते हैं। Google मानचित्र दिशा लिंक से इस फ़ाइल को बनाना बहुत आसान है:
अपने एमुलेटर के लिए बनाई गई फ़ाइल को लोड करने के लिए "लोड जीपीएस / केएमएल" बटन का उपयोग करें, गति चुनें, और नीचे हरे रंग का प्ले बटन दबाएं। नीचे दिए गए चित्र में दिखाए गए अनुसार वास्तविक समय में स्थान भेजे जाएंगे।
मैं एमुलेटर के जीपीएस निर्देशांक को सेट करने geo fix
और मैन्युअल रूप से विशिष्ट अक्षांश और देशांतर निर्देशांक निर्धारित करने की तुलना में बेहतर तरीके से देख रहा था ।
कुछ भी खोजने में असमर्थ, मैंने एक छोटा सा प्रोग्राम जो GWT और Google मैप्स API का उपयोग करता है, को एमुलेटर में GPS लोकेशन सेट करने के लिए ब्राउज़र-आधारित मैप टूल लॉन्च करने के लिए किया है:
उम्मीद है कि यह दूसरों की मदद करने के लिए उपयोग किया जा सकता है जो निस्संदेह इस कठिनाई / प्रश्न के साथ-साथ ठोकर खाएगा।
ConnectionRefused
अगर मैं एंड्रॉइड वर्चुअल डिवाइस शुरू करने से पहले जीपीएस एमुलेटर लॉन्च करता हूं तो मुझे वह संदेश दिखाई देता है । मेरे ब्राउज़र के शीर्ष पर यह भी लिखा है "पोर्ट 5554 पर कनेक्शन बनाने में त्रुटि ..." यदि मैं पुन: कनेक्ट करने के लिए "एमुलेटर पोर्ट बदलें" बटन पर क्लिक करता हूं तो सब कुछ ठीक
geo fix 42,42 42,42 42
डॉट्स के बजाय कॉमा की तरह होना है ।
यदि आप उपयोग कर रहे Eclipse
हैं Window->Open Perspective->DDMS
, तो जाएं , फिर एक टाइप करें Location Controls
और हिट करें Send
।
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mlocManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Unable to send command to the emulator
। किसी भी विचार क्यों यह काम नहीं कर रहा है? मैं डिफ़ॉल्ट Nexus 4 AVD
Android स्टूडियो उपयोगकर्ताओं के लिए:
एमुलेटर चलाएं,
फिर जाएं Tools -> Android ->Android device monitor
Emulator Control
टैब खोलें , और स्थान नियंत्रण समूह का उपयोग करें।
मान लें कि आपको एक मानचित्र-सेट मिल गया है और चल रहा है:
MapView mapView = (MapView) findViewById(R.id.mapview);
final MyLocationOverlay myLocation = new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(myLocation);
myLocation.enableMyLocation();
myLocation.runOnFirstFix(new Runnable() {
public void run() {
GeoPoint pt = myLocation.getMyLocation();
}
});
आपको अपने घोषणापत्र में निम्नलिखित अनुमति की आवश्यकता होगी:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
और ग्रहण से एमुलेटर को मॉक निर्देशांक भेजने के लिए, "विंडो" मेनू पर जाएं, "शो व्यू"> "अन्य"> "एमुलेटर कंट्रोल" चुनें, और आप एमुलेटर कंट्रोल पेन से निर्देशांक भेज सकते हैं जो दिखाई देता है।
runOnFirstFix
? क्योंकि यह वह घटना है जो तब उठती है जब डिवाइस पहली बार जीपीएस स्थिति प्राप्त करता है, इसलिए यदि वह कभी भी उठाया जाता है, getMyLocation
तो निश्चित रूप से एक मूल्य वापस करना चाहिए।
नए एमुलेटर के लिए:
http://developer.android.com/tools/devices/emulator.html#extended
मूल रूप से, एमुलेटर नियंत्रण (एमुलेटर के दाईं ओर) में तीन डॉट्स बटन पर क्लिक करें और यह एक मेनू खोलेगा जो आपको स्थान सहित एमुलेटर को नियंत्रित करने की अनुमति देगा
1. एंड्रॉइड स्टूडियो उपयोगकर्ता।
एमुलेटर गोटो टूल्स को चलाने के बाद-> Android-> Android डिवाइस मॉनिटर
स्थान नियंत्रण समूह से एमुलेटर नियंत्रण टैब परिवर्तन पर क्लिक करें।
2. ग्रहण करने वाले उपयोगकर्ता।
पहले मेनू में ग्रहण करें "विंडो" चुनें फिर "ओपन पर्सपेक्टिव" चुनें फिर "डीडीएमएस" चुनें। यानी विंडो-> ओपन प्रैस्पेक्टिव-> डीडीएमएस।
आप लेफ्ट साइड डिवाइसेज पैनल पर देखेंगे और राइट साइड में आपको अलग-अलग टैब दिखाई देंगे। "एमुलेटर कंट्रोल" टैब चुनें।
नीचे आपको लोकेशन कंट्रोल पैनल दिखाई देगा। "मैनुअल" टैब चुनें।
पाठ बॉक्स में देशांतर और अक्षांश दर्ज करें फिर भेजें बटन पर क्लिक करें। यह आपको एमुलेटर और एप्लिकेशन को स्थिति भेजेगा।
3. टेलनेट का उपयोग करना।
रन कमांड में यह टाइप करें।
telnet localhost 5554
यदि आप विंडोज़ का उपयोग नहीं कर रहे हैं तो आप किसी भी टेलनेट क्लाइंट का उपयोग कर सकते हैं।
टेलनेट से जुड़ने के बाद अपनी स्थिति को एमुलेटर पर भेजने के लिए निम्न कमांड का उपयोग करें।
geo fix long lat
geo fix -121.45356 46.51119 4392
4. ब्राउजर आधारित गूगल मैप्स टूल का इस्तेमाल करें
एक प्रोग्राम है जो GWT और Google मैप्स एपीआई का उपयोग करके एमुलेटर में GPS लोकेशन सेट करने के लिए ब्राउज़र-आधारित मैप टूल लॉन्च करता है:
एमुलेटर कंसोल में "जियो" कमांड का उपयोग करना
कमांड लाइन से नकली स्थान डेटा भेजने के लिए:
एंड्रॉइड एमुलेटर में अपना एप्लिकेशन लॉन्च करें और अपने एसडीके / टूल डायरेक्टरी में एक टर्मिनल / कंसोल खोलें।
एमुलेटर कंसोल से कनेक्ट करें:
telnet localhost 5555
(आपके एमुलेटर जिस भी पोर्ट पर चल रहा है, उसके साथ 5555 बदलें)
स्थान डेटा भेजें: * एक निश्चित भू-स्थान भेजने के लिए जियो फिक्स।
यह आदेश दशमलव डिग्री में एक देशांतर और अक्षांश और मीटर में एक वैकल्पिक ऊंचाई स्वीकार करता है। उदाहरण के लिए:
geo fix -121.45356 46.51119 4392
मैंने टेलनेट के माध्यम से एमुलेटर पर जीपीएस लोकेशन को पुश करने के लिए एक पायथन स्क्रिप्ट लिखी। यह एक स्रोत और एक गंतव्य स्थान को परिभाषित करता है। एक समय ऑफसेट भी है जो आपको यह नियंत्रित करने की सुविधा देता है कि डिवाइस में कब तक निर्देशांक धकेल दिए जाएंगे। एक स्थान पर एक बार दूसरी बार धकेल दिया जाता है।
उदाहरण के नीचे स्क्रिप्ट 120 सेकंड में बर्लिन से हैम्बर्ग तक जाती है। यादृच्छिक दूरी के साथ प्रति सेकंड एक कदम / जीपीएस स्थान।
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import telnetlib
from time import sleep
import random
HOST = "127.0.0.1"
PORT = 5554
TIMEOUT = 10
LAT_SRC = 52.5243700
LNG_SRC = 13.4105300
LAT_DST = 53.5753200
LNG_DST = 10.0153400
SECONDS = 120
LAT_MAX_STEP = ((max(LAT_DST, LAT_SRC) - min(LAT_DST, LAT_SRC)) / SECONDS) * 2
LNG_MAX_STEP = ((max(LNG_DST, LNG_SRC) - min(LNG_DST, LNG_SRC)) / SECONDS) * 2
DIRECTION_LAT = 1 if LAT_DST - LAT_SRC > 0 else -1
DIRECTION_LNG = 1 if LNG_DST - LNG_SRC > 0 else -1
lat = LAT_SRC
lng = LNG_SRC
tn = telnetlib.Telnet(HOST, PORT, TIMEOUT)
tn.set_debuglevel(9)
tn.read_until("OK", 5)
tn.write("geo fix {0} {1}\n".format(LNG_SRC, LAT_SRC))
#tn.write("exit\n")
for i in range(SECONDS):
lat += round(random.uniform(0, LAT_MAX_STEP), 7) * DIRECTION_LAT
lng += round(random.uniform(0, LNG_MAX_STEP), 7) * DIRECTION_LNG
#tn.read_until("OK", 5)
tn.write("geo fix {0} {1}\n".format(lng, lat))
#tn.write("exit\n")
sleep(1)
tn.write("geo fix {0} {1}\n".format(LNG_DST, LAT_DST))
tn.write("exit\n")
print tn.read_all()
मैं जीपीएस भेजने के लिए ग्रहण प्लग डीडीएमएस फ़ंक्शन का उपयोग करता हूं।
लिनक्स में जहां संचार पोर्ट अवरुद्ध हैं। टर्मिनल को प्लेटफ़ॉर्म-टूल फ़ोल्डर में नेविगेट करें android sdk
और इस कमांड को फायर करें:
./adb -s #{device_name} emu geo fix #{longitude} #{latitude}
Mac, Linux या Cygwin में:
echo 'geo fix -99.133333 19.43333 2202' | nc localhost 5554
जो आपको मेक्सिको सिटी में डाल देगा। तदनुसार अपना देशांतर / अक्षांश / ऊंचाई बदलें। यदि आप nmea में रुचि नहीं रखते हैं तो यह पर्याप्त होना चाहिए।
निम्नलिखित समाधान ने मेरे लिए काम किया - कमांड लाइन खोलें और लिखें:
adb emu geo fix [longtitude] [latitude]
अंत में एंड्रॉइड स्टूडियो 4 की नवीनतम रिलीज और उसके नए एमुलेटर 10/23/2019 को अपडेट करना आसान हो गया है। अपने एमुलेटर को शुरू करें और एमुलेटर मापदंडों पर जाएं ...> "रूट्स" टैब में आप मैप पर / से / के लिए दो पॉइंट चुन सकते हैं और एक एडजस्टेबल प्लेबैक स्पीड के साथ एक नया रूट शुरू कर सकते हैं जो 1000 किमी / घंटा से अधिक तक जा सकता है!
उपयोगकर्ता स्थान प्राप्त करना देखें
उपलब्ध कराने के तहत मॉक लोकेशन डेटा देखें । आपको इसका हल मिल जाएगा।
सबसे पहले अपने em ग्रहण से DDMS सेक्शन में खुले एमुलेटर कंट्रोल पर जाएँ .... मैन्युअल सेक्शन पर जाएँ लैट और लॉन्ग सेट करें और फिर Send बटन दबाएँ
मैं कई बिंदुओं के लिए adb के माध्यम से जियो फिक्स को सेट करने की कोशिश कर रहा था और किसी भी जीपीएस डेटा को देखने के लिए मेरा ऐप नहीं मिल सका। लेकिन जब मैंने डीडीएमएस खोलने की कोशिश की, तो अपने ऐप की प्रक्रिया का चयन किया और एम्यूलेटर कंट्रोल टैब के माध्यम से निर्देशांक भेजना शुरू किया।
यदि आप Android Studio (1.3) का उपयोग कर रहे हैं:
बस एक लाइन में अल्बर्टो गाओना का जवाब दें
token=$(cat ~/.emulator_console_auth_token); cat <(echo -e "auth $token \n geo fix 96.0290791 16.9041016 \n exit") - | nc localhost 5554
5554 में दिखाया गया एमुलेटर पोर्ट नंबर है adb devices
।
adb emu
काम होता तो बेहतर होता ।
यदि उपरोक्त समाधान काम नहीं करते हैं। इसे इस्तेमाल करे:
अपने Android Manifest.xml के अंदर, एप्लिकेशन टैग के निम्नलिखित दो लिंक OUTSIDE जोड़ें , लेकिन आपके पाठ्यक्रम के प्रकट होने के अंदर
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
जब एम्यूलेटर Google API के बिना एंड्रॉइड इमेज चला रहा था, तो मैं एमुलेटर पर जीपीएस फिक्स नहीं कर पा रहा था। जैसे ही मैंने Google API को शामिल करने के लिए छवि को बदला यहां सभी ने जीपीएस फिक्स काम करने के तरीकों का उल्लेख किया है।
AVD बनाते समय सुनिश्चित करें कि आप Google API के साथ एक छवि का चयन करें।
शेल कमांड " जियो फिक्स ... " का उपयोग करने के लिए पहले से ही कई बार दिए गए उत्तर सही उत्तर है। लेकिन यदि आप अपने डेटा को पुनः प्राप्त करने के लिए LocationClient.getLastLocation () का उपयोग करते हैं, तो यह उल्लेख के लायक है कि यह पहले काम नहीं करेगा। स्थानक्लाइंट वर्ग निर्देशांक को पुनः प्राप्त करने के लिए Google Play सेवा का उपयोग करता है। मेरे लिए यह एक बार एमुलेटर मैप्स ऐप चलाने के बाद काम करना शुरू कर दिया। पहली शुरुआत के दौरान आपको Google ऐप्स को आपके स्थान पर पहुंचने की अनुमति देने के लिए कहा जाता है, जो मुझे लगता है कि चाल है।
अपनी खुद की एक परियोजना के लिए, मैंने एक ऑनलाइन सेवा विकसित की, जो एंड्रॉइड एमुलेटर पर नकली स्थान प्रदान कर सकती है।
यह जियो फिक्स के बजाय जियो एनएम का उपयोग करता है जो इसे केवल लेट / लोन के अलावा गति, पाठ्यक्रम, सटीक समय आदि को सेट करने की अनुमति देता है।
सेवा के लिए nc (netcat) कमांड लाइन उपयोगिता की आवश्यकता है और कुछ नहीं।
आप जीनोमिशन जैसे एमुलेटर का उपयोग कर सकते हैं जो आपको आपके वर्तमान जीपीएस स्थान आदि का अनुकरण करने की सुविधा देता है।
एंड्रॉइड स्टूडियो के लिए एक प्लगइन है जिसे "मॉक लोकेशन प्लगिन" कहा जाता है। आप इस प्लगइन के साथ कई बिंदुओं का अनुकरण कर सकते हैं। आप इस लिंक में उपयोग का एक विस्तृत मैनुअल पा सकते हैं: एंड्रॉइड स्टूडियो। मॉक लोकेशन प्लगिन के साथ कई जीपीएस पॉइंट्स को सिमिट करें
Android स्टूडियो-> टूल मेनू-> Android-> Android डिवाइस मॉनिटर-> एमुलेटर टैब-> स्थान नियंत्रण-> अपना आवश्यक अक्षांश और देशांतर सेट करें और अपनी आवश्यकता के अनुसार अपने प्रोजेक्ट की जांच करें
ग्रहण में:
आपको डीडीएमएस विंडो को नीचे खींचना पड़ सकता है। 'स्थान नियंत्रण' 'टेलीफोनी क्रियाओं' के तहत स्थित है और आमतौर पर आकार के कंसोल दृश्य (कंसोल के साथ बार, लॉगकैट आदि) इसे कवर कर सकता है!
~