sourcecode

안드로이드 에뮬레이터에서 GPS 위치를 에뮬레이트하는 방법은 무엇입니까?

codebag 2023. 6. 2. 20:27
반응형

안드로이드 에뮬레이터에서 GPS 위치를 에뮬레이트하는 방법은 무엇입니까?

테스트를 위해 안드로이드 에뮬레이터에서 경도와 위도를 얻고 싶습니다.

이것을 달성하는 방법을 누가 안내해 줄 수 있습니까?

에뮬레이터의 위치를 테스트 위치로 설정하려면 어떻게 해야 합니까?

텔넷을 통해 에뮬레이터에 연결할 수 있습니다.그런 다음 에뮬레이터 콘솔을 사용하여 지오픽스, 네트워크 등의 특정 데이터를 입력할 수 있습니다.

콘솔 사용 방법은 여기에서 광범위하게 설명합니다.콘솔에 연결하려면명령줄을 열고 다음을 입력합니다.

telnet localhost 5554

그런 다음 지오 명령을 사용하여 gps 위치 공급자를 사용하는 모든 프로그램에 전달되는 장치에서 위도, 경도 및 필요한 경우 고도를 설정할 수 있습니다.자세한 내용은 위의 링크를 참조하십시오.

콘솔에서 실행할 특정 명령은 다음과 같습니다.

geo fix <longitude value> <latitude value>

저는 이 사이트가 현실적인 lat/message를 찾는 데 유용하다는 것을 알았습니다: http://itouchmap.com/latlong.html

하나 이상의 좌표가 필요한 경우 경로와 함께 kml 파일을 사용할 수 있습니다. 이 문서에 약간 설명되어 있습니다.현재로서는 더 좋은 정보원을 찾을 수 없습니다.

여기서는 아무도 에뮬레이터의 내장 솔루션 자체를 언급하지 않았습니다. 그래서 미래의 방문자들을 위해, 저는 그것을 비주얼과 공유하고 싶습니다.

먼저 Android Emulator를 실행하고 아래에 표시된 메뉴 버튼(점 3개)을 클릭합니다.

메뉴 버튼이 있는 에뮬레이터

그런 다음 왼쪽 창에서 위치를 선택하고 필요에 따라 좌표를 변경합니다.보내기 버튼을 누르면 변경 사항이 즉시 적용됩니다(보다 잘 이해하기 위해 Google 지도를 여는 것이 좋습니다).

여기에 이미지 설명 입력

안드로이드 스튜디오 버전: 2.3.3

또한 다양한 위치를 실시간으로 응용프로그램에 제공하기 위해 GPX 파일을 사용할 수 있습니다.Google 지도 방향 링크에서 이 파일을 만드는 것은 매우 쉽습니다.

  1. Google 지도로 이동하여 위치를 선택한 다음 "방향"을 누르고 두 번째 위치를 입력합니다.
  2. 경로가 생성된 후 브라우저에서 링크 복사
  3. 다음 웹 사이트로 이동합니다: https://mapstogpx.com 에서 "렛츠고" 상자 링크를 붙여넣습니다.
  4. Let's Go 버튼을 누르면 GPX 파일이 다운로드됩니다.

"Load GPS/KML" 버튼을 사용하여 생성된 파일을 에뮬레이터에 로드하고 속도를 선택한 후 하단의 녹색 재생 버튼을 누릅니다.위치는 아래 그림과 같이 실시간으로 전송됩니다.

여기에 이미지 설명 입력

보다 더 .geo fix수동으로 특정 위도 및 경도 좌표를 결정합니다.

아무것도 찾을 수 없어서, 저는 GWT와 Google Maps API를 사용하여 브라우저 기반 지도 도구를 실행하여 에뮬레이터에서 GPS 위치를 설정하는 작은 프로그램을 만들었습니다.

안드로이드 스마트폰 에뮬레이터

의심할 여지 없이 이 어려움/질문에 부딪힐 다른 사람들에게도 도움이 될 수 있기를 바랍니다.

를 사용하는 Eclipse,에 가다Window->Open Perspective->DDMS그런 다음 하나를 입력합니다.Location Controls그리고 때리기Send.

Android Studio 사용자의 경우:

에뮬레이터를 작동합니다.

다음으로 이동합니다.Tools -> Android ->Android device monitor

Emulator Control위치 제어 그룹을 탭하고 사용합니다.

Necro Post에 대해 미안하지만, 이 질문에 대한 몇 가지 제안을 따른 후, 저는 제 위치를 알래스카로 정했습니다.그러나 내 장치는 여전히 캘리포니아 마운틴 뷰(Google의 HQ?)에 있는 것으로 나타났습니다.그래서 제가 해결한 방법은 다음과 같습니다.

위치 설정으로 이동합니다.

여기에 이미지 설명 입력

테스트 위치를 설정합니다.알래스카를 선택했습니다.

여기에 이미지 설명 입력

"내 현재 위치"를 구글에 검색하고 사진에 동그라미 친 지도를 클릭합니다.위치를 알래스카로 설정해도 가상 장치는 여전히 캘리포니아 마운틴 뷰에 있다고 생각합니다.

여기에 이미지 설명 입력

이 위치 아이콘을 클릭합니다. 이제 장치에서 위치가 업데이트됩니다."내 현재 위치"를 Google로 다시 확인할 수 있습니다.

여기에 이미지 설명 입력

이와 같은 문제를 경험한 사람이 있다면, 저의 솔루션이 당신에게 도움이 되었기를 바랍니다.

지도 보기를 설정하고 실행 중이라고 가정합니다.

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"/>

그리고 이클립스에서 에뮬레이터로 모의 좌표를 보내려면 "창" 메뉴로 이동하여 "보기 표시" > "기타" > "에뮬레이터 컨트롤"을 선택하면 에뮬레이터 컨트롤 창에서 좌표를 보낼 수 있습니다.

새 에뮬레이터의 경우:

http://developer.android.com/tools/devices/emulator.html#extended

기본적으로 에뮬레이터 컨트롤(에뮬레이터 오른쪽)에서 도트 3개 버튼을 클릭하면 위치를 포함한 에뮬레이터를 제어할 수 있는 메뉴가 열립니다.

Android Studio 사용자.

에뮬레이터 실행 후 Tools->Android->Android 디바이스 모니터로 이동합니다.

위치 제어 그룹에서 에뮬레이터 제어 탭 변경을 클릭합니다.

이클립스 사용자.

먼저 Eclipse In Menu에서 "Window"를 선택한 다음 "Open Perspective"를 선택하고 "DDMS"를 선택합니다. 즉, Window->Open Prespective->DDMS.

왼쪽 장치 패널과 오른쪽에는 서로 다른 탭이 표시됩니다.에뮬레이터 제어 탭을 선택합니다.

하단에 위치 제어 패널이 표시됩니다.수동 탭을 선택합니다.

텍스트 상자에 경도와 위도를 입력한 다음 보내기 단추를 클릭합니다.그러면 위치가 에뮬레이터와 응용 프로그램으로 전송됩니다.

텔넷을 사용합니다.

실행 명령에 다음을 입력합니다.

telnet localhost 5554

Windows를 사용하지 않는 경우 텔넷 클라이언트를 사용할 수 있습니다.

텔넷으로 연결한 후 다음 명령을 사용하여 위치를 에뮬레이터로 전송합니다.

geo fix long lat    
geo fix -121.45356 46.51119 4392

브라우저 기반 Google 지도 도구 사용

GWT와 Google Maps API를 사용하여 브라우저 기반 지도 도구를 실행하여 에뮬레이터에서 GPS 위치를 설정하는 프로그램이 있습니다.

안드로이드 스마트폰 에뮬레이터

마지막으로 Android Studio 4의 최신 릴리스와 그의 새로운 에뮬레이터 업데이트 10/23/2019를 통해 더 쉬워졌습니다.에뮬레이터를 시작하고 에뮬레이터 매개 변수로 이동합니다...> "경로" 탭에서 지도상에서 출발/도착 지점 2개를 선택하여 1000km/h 이상까지 이동할 수 있는 재생 속도 조절이 가능한 새로운 경로를 시작할 수 있습니다!

여기에 이미지 설명 입력

명령줄을 열고 다음과 같은 솔루션을 사용할 수 있었습니다.

adb emu geo fix [longtitude] [latitude]

에뮬레이터 콘솔에서 "geo" 명령 사용

명령줄에서 모의 위치 데이터를 전송하는 방법

  1. Android 에뮬레이터에서 응용 프로그램을 시작하고 SDK의 /tools 디렉토리에서 터미널/콘솔을 엽니다.

  2. 에뮬레이터 콘솔에 연결합니다.

    telnet localhost 5555

  3. 위치 데이터 전송: * 지오픽스를 사용하여 고정된 지리적 위치를 전송합니다.

    이 명령은 경도와 위도(10진수)를 사용할 수 있으며 고도(미터)는 선택적으로 사용할 수 있습니다.예:

    geo fix -121.45356 46.51119 4392
    

저는 텔넷을 통해 에뮬레이터에 GPS 위치를 푸시하는 파이썬 스크립트를 작성했습니다.소스 및 대상 위치를 정의합니다.또한 장치에 좌표를 푸시할 시간을 제어할 수 있는 시간 오프셋도 있습니다.한 곳은 1초에 한 번씩 밀리고 있습니다.

아래 예제에서는 스크립트가 120초 만에 베를린에서 함부르크로 이동합니다.무작위 거리를 갖는 초당 한 단계/gps 위치.

#!/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()

의통 포차단 Linux 우경. platform-tools 폴다 안에 있는 합니다.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에 관심이 없다면 그것으로 충분할 것입니다.

저는 GPS를 보낼 때 이클립스 플러그 DDMS 기능을 사용합니다. 여기에 이미지 설명 입력

사용자 위치 가져오기 참조

모의 위치 데이터 제공에서 확인합니다.당신은 그것에 대한 해결책을 찾을 것입니다.

먼저 이클립스에서 DDMS 섹션으로 들어가십시오. 에뮬레이터 컨트롤을 여는 것보다...수동 섹션 세트로 이동한 다음 보내기 버튼을 누릅니다.

저는 많은 점에서 adb를 통해 지오픽스를 설정하려고 했지만 앱에서 GPS 데이터를 볼 수 없었습니다.그러나 DDMS를 열고 앱의 프로세스를 선택하고 에뮬레이터 제어 탭을 통해 좌표를 전송하려고 시도했을 때 바로 작동했습니다.

Dalvik Debug Monitor > 에뮬레이터 선택 > 에뮬레이터 컨트롤 탭 > 위치 컨트롤

DDMS -- Android_sdk/tools/ddms 또는 Android_sdk/tools/모니터

이클립스를 사용하는 경우 에뮬레이터 컨트롤러를 사용하여 위도 및 경도를 수동으로 설정하고 에뮬레이터에서 지도 기반 앱을 실행할 수 있습니다.

Android Studio(1.3)를 사용하는 경우:

  • 메뉴 "도구" 클릭
  • "안드로이드"
  • "Android 장치 모니터"
  • 현재 에뮬레이터를 클릭합니다.
  • "에뮬레이터 컨트롤" 탭
  • "위치 제어"로 이동한 후 Lat 및 Lon을 입력합니다.

알베르토 가오나의 대답을 한 줄로 만들어 보세요.

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일하다.

에 가다Extended controls할 수 .그런 다음 지도를 검색하거나 설정할 위치로 끌어 에뮬레이트 위치를 설정할 수 있습니다.

위치

으로 마막으클릭을 합니다.SET LOCATION버튼을 눌러 저장합니다.

위의 해결책이 작동하지 않는 경우.사용해 보십시오.

Android Manifest.xml 내부에 다음 두 링크를 응용 프로그램 태그 외부에 추가합니다. 물론 매니페스트 태그 내부에 추가합니다.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>

에뮬레이터가 Google API 없이 Android 이미지를 실행할 때 에뮬레이터에서 GPS 수정을 받을 수 없었습니다.Google API를 포함하도록 이미지를 변경하자마자 GPS 수정 작업을 수행할 수 있는 모든 방법을 언급되었습니다.

AVD를 만들 때 Google API가 포함된 이미지를 선택해야 합니다.

셸 명령 "geofix.."를 사용하기 위해 이미 언급된 여러 번의 답변.정답입니다.그러나 LocationClient.getLastLocation()사용하여 데이터를 검색하는 경우에는 처음에는 작동하지 않는다는 점을 언급할 가치가 있습니다.LocationClient 클래스는 Google Play 서비스를 사용하여 좌표를 검색합니다.저에게 이것은 에뮬레이터 맵 앱을 한 번 실행한 후에 작동하기 시작했습니다.처음 시작할 때 구글 앱이 사용자 위치에 액세스할 수 있도록 허용하라는 메시지가 표시됩니다. 이것이 요령이라고 생각합니다.

저만의 프로젝트를 위해 안드로이드 에뮬레이터에 시뮬레이션 위치를 제공할 수 있는 온라인 서비스를 개발했습니다.

그것은 단지 lat/lon 뿐만 아니라 속도, 코스, 정확한 시간 등을 설정할 수 있는 지오픽스가 아닌 지온 수단을 사용합니다.

이 서비스에는 nc(netcat) 명령줄 유틸리티가 필요합니다.

http://www.kisstech.ch/nmea/

현재 GPS 위치 등을 에뮬레이트할 수 있는 유연성을 제공하는 genimotion과 같은 에뮬레이터를 사용할 수 있습니다.

Android Studio용 플러그인 "Mock Location Plugin"이 있습니다.이 플러그인을 사용하여 여러 지점을 에뮬레이트할 수 있습니다.Android Studio 링크에서 자세한 사용 설명서를 찾을 수 있습니다. Mock Location Plugin으로 여러 GPS 지점 시뮬레이션

언급URL : https://stackoverflow.com/questions/2279647/how-to-emulate-gps-location-in-the-android-emulator

반응형