วิธีจำลองตำแหน่ง GPS ใน Android Emulator


445

ฉันต้องการรับลองจิจูดและละติจูดในโปรแกรมจำลอง Android สำหรับการทดสอบ

คนใดคนหนึ่งสามารถแนะนำฉันถึงวิธีการบรรลุเป้าหมายนี้

ฉันจะตั้งค่าตำแหน่งของตัวจำลองเป็นตำแหน่งทดสอบได้อย่างไร


หากคุณกำลังใช้ Genymotion: stackoverflow.com/questions/30709329/…
Hachem Benyahia

คุณสามารถติดตั้งแอปจำลองตำแหน่งหนึ่งใน Play Store
whoKnows

คำตอบ:


443

คุณสามารถเชื่อมต่อกับ Emulator ผ่าน Telnet จากนั้นคุณมีคอนโซล Emulator ที่ให้คุณป้อนข้อมูลบางอย่างเช่นการแก้ไขทางภูมิศาสตร์เครือข่าย ฯลฯ

วิธีการใช้คอนโซลจะมีการอธิบายอย่างกว้างขวางที่นี่ เพื่อเชื่อมต่อกับคอนโซลเปิดบรรทัดคำสั่งและพิมพ์

telnet localhost 5554

จากนั้นคุณสามารถใช้คำสั่ง geo เพื่อตั้งค่าละติจูดลองจิจูดและหากจำเป็นต้องใช้ระดับความสูงบนอุปกรณ์ที่ส่งผ่านไปยังโปรแกรมทั้งหมดโดยใช้ผู้ให้บริการตำแหน่งจีพีเอส ดูลิงค์ด้านบนสำหรับคำแนะนำเพิ่มเติม

คำสั่งเฉพาะเพื่อเรียกใช้ในคอนโซลคือ

geo fix <longitude value> <latitude value>

ฉันพบว่าไซต์นี้มีประโยชน์สำหรับการค้นหา lat / lng ที่เหมือนจริง: http://itouchmap.com/latlong.html

หากคุณต้องการมากกว่าหนึ่งพิกัดคุณสามารถใช้ไฟล์ kml พร้อมเส้นทางเช่นเดียวกับที่อธิบายไว้ในบทความนี้เล็กน้อย ฉันไม่สามารถหาแหล่งที่ดีกว่าในขณะนี้


13
ใช้ geo fix i ได้ตั้งค่าการเยาะเย้ยละติจูดและลองจิจูดยังคงได้รับตำแหน่งว่าง
UMAR

2
หรือวิธีง่ายๆในการเปิด gps ในอีมูเลเตอร์และไปที่อีมูเลเตอร์ควบคุมให้ค่า lat, ค่ายาวและส่งคุณจะได้รับค่าเหล่านั้นในอีมูเลเตอร์เป็นตำแหน่ง gps
UMAR

35
adb emu geo fix 30.219470 -97.745361
Bryan Rehbein

12
ระวังการสั่งซื้อก่อนที่จะ lat!
Christoph

14
geo fixคำสั่งจะใช้ได้เฉพาะถ้าคุณauthเป็นครั้งแรก อาจจะมีมูลค่าการกล่าวขวัญ ...
aroth

126

ไม่มีใครพูดถึงวิธีแก้ปัญหาของอีมูเลเตอร์ในตัวดังนั้นสำหรับผู้เยี่ยมชมในอนาคตฉันต้องการแชร์ด้วยภาพ

ก่อนอื่นให้รัน Android Emulator ของคุณและคลิกที่ปุ่มเมนู (3 จุด) ที่แสดงด้านล่าง:

โปรแกรมจำลองด้วยปุ่มเมนู

จากบานหน้าต่างด้านซ้ายเลือกตำแหน่งและเปลี่ยนพิกัดตามความต้องการของคุณ หลังจากกดปุ่มส่งการเปลี่ยนแปลงจะมีผลทันที (ฉันขอแนะนำให้คุณเปิด Google Maps เพื่อความเข้าใจที่ดีขึ้น)

ป้อนคำอธิบายรูปภาพที่นี่

เวอร์ชั่น Android Studio: 2.3.3

นอกจากนี้หากต้องการให้สถานที่ต่าง ๆ ของคุณมาที่แอปพลิเคชันของคุณแบบเรียลไทม์คุณสามารถใช้ไฟล์ GPX มันง่ายมากที่จะสร้างไฟล์นี้จากลิงค์ทิศทางของ Google Map:

  1. ไปที่แผนที่ google เลือกสถานที่จากนั้นกด "เส้นทาง" และป้อนตำแหน่งที่สอง
  2. หลังจากสร้างเส้นทางแล้วให้คัดลอกลิงก์จากเบราว์เซอร์
  3. ไปที่เว็บไซต์นี้: https://mapstogpx.comและวางลิงก์ไปที่กล่อง "Let's Go"
  4. กดปุ่ม "Let's Go" จากนั้นไฟล์ GPX จะถูกดาวน์โหลด

ใช้ปุ่ม "โหลด GPS / KML" เพื่อโหลดไฟล์ที่สร้างไปยังโปรแกรมจำลองของคุณเลือกความเร็วและกดปุ่มเล่นสีเขียวที่ด้านล่าง สถานที่จะถูกส่งตามเวลาจริงตามที่แสดงในภาพด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่


ในโซลูชันนี้ต้องการบริการการเล่นในโปรแกรมจำลองหรือไม่
Kevan Aghera

ฉันไม่คิดอย่างนั้น
eden

เมื่อฉันเปิดแอปในโปรแกรมจำลองโปรแกรมไคลเอ็นต์ของ Google API เป็นโมฆะจึงไม่สามารถโหลดแผนที่ในโปรแกรมจำลอง และอุปกรณ์มือถือก็โอเคสำหรับฉัน
Kevan Aghera

4
ฉันยืนยันว่าไม่จำเป็นต้องลงชื่อเข้าใช้ในบัญชี Google ของคุณเพื่อดำเนินการนี้ เย็น!
xarlymg89

3
ฉันต้องรีสตาร์ทระบบปฏิบัติการจำลองเพื่อให้สามารถจดจำตำแหน่งใหม่ได้
Nate Whittaker

109

ฉันกำลังมองหาวิธีที่ดีกว่าในการตั้งค่าพิกัด GPS ของอีมูเลเตอร์มากกว่าการใช้geo fixและการกำหนดพิกัดละติจูดและลองจิจูดเฉพาะด้วยตนเอง

ไม่พบสิ่งใดฉันได้รวบรวมโปรแกรมเล็ก ๆ ที่ใช้ GWT และ Google Maps API เพื่อเปิดเครื่องมือแผนที่บนเบราว์เซอร์เพื่อตั้งค่าตำแหน่ง GPS ในตัวจำลอง:

หุ่นยนต์ GPS-จำลอง

หวังว่ามันจะเป็นประโยชน์ในการช่วยเหลือผู้อื่นที่จะต้องเจอกับความยากลำบาก / คำถามนี้เช่นกัน


ว้าวขอบคุณ! การติดตั้งใช้งานได้ดี แต่ฉันไม่สามารถจัดการการเชื่อมต่อกับตัวจำลอง -> บันทึกการพิมพ์ java.net.ConnectionRefused แล้วฉันลอง telnet localhost 5554 (จาก terminal) และมันใช้งานได้ .. มีคนอื่นทดสอบ emulator ของคุณบน mac สำเร็จหรือไม่?
ottel142

1
ฉันไม่ได้ทดสอบ แต่มันดูดีมากฉันคิดว่า Google ควรบอกให้โลกรู้เกี่ยวกับมัน ความคิดที่เรียบง่ายเป็นสิ่งที่ดีที่สุดเสมอ ทำไมไม่มีใครคิดเรื่องนี้
tiktak

@ ottel142 - ใช่ฉันกำลังใช้งานบน mac จริง ๆ โดยไม่มีปัญหา (ใช้ Chrome บน Mavericks) ฉันเห็นConnectionRefusedข้อความนั้นถ้าฉันเรียกใช้ตัวจำลอง GPS ก่อนเริ่มอุปกรณ์เสมือน Android ที่ด้านบนของเบราว์เซอร์ของฉันมันยังบอกว่า "เกิดข้อผิดพลาดในการเชื่อมต่อกับพอร์ต 5554 ... " ทุกอย่างทำงานได้ดีถ้าฉันคลิกปุ่ม "เปลี่ยนพอร์ตจำลอง" เพื่อเชื่อมต่ออีกครั้ง
dpdear

สิ่งที่ฉันต้องการ
David

นี่เป็นโปรแกรมที่ดี แต่ระบบในท้องที่เปลี่ยนวิธีการทำงานแบบลอยตัว ในระบบของฉันจะต้องเป็นgeo fix 42,42 42,42 42เครื่องหมายจุลภาคแทนที่จะเป็นจุด
nurettin

81

หากคุณใช้EclipseไปWindow->Open Perspective->DDMSแล้วพิมพ์หนึ่งในและตีLocation ControlsSend


8
นี่คือวิธีที่ง่ายที่สุดที่ฉันเคยเห็น ตรวจสอบให้แน่ใจว่าคุณตั้งค่า AVD ด้วยการรองรับ GPS จากนั้นในมุมมอง DDMS คลิกที่ตัวจำลองที่ทำงานภายใต้อุปกรณ์ให้เลือกแท็บตัวควบคุมการจำลองบนบานหน้าต่างกลางขวาจากนั้นที่ด้านล่างคือส่วนควบคุมตำแหน่งที่ SteveCav กล่าวไว้ Eclipse Juno 4.2 สำหรับผู้พัฒนา Java ด้วย ADT ล่าสุด) แผงควบคุมตำแหน่งของฉันถูกโหลดไว้ล่วงหน้าด้วยข้อมูลตำแหน่ง
Steven Magana-Zook

คำตอบที่ดี! ทำงานร่วมกับ IDE ใด ๆ เพราะ ddms เป็นส่วนหนึ่งของ sdk (yoursdkfolder / tools /)
Zarokka

1
สิ่งนี้หรือโซลูชัน telnet ด้านบนทำงานได้สำหรับฉัน ฉันพยายามรับตำแหน่งของฉันเช่นนี้ แต่ก็ยังคงว่างเปล่า LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Location location = mlocManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
crowmagnumb

เมื่อฉันใช้ "การควบคุมสถานที่ตั้ง" ใน DDMS Unable to send command to the emulatorฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามที่จะส่ง มีความคิดว่าทำไมมันไม่ทำงาน? ฉันใช้ Nexus 4 AVD ที่เป็นค่าเริ่มต้น
เมอร์สันนี่คือ

1
ฉันไม่สามารถทำสิ่งนี้ได้การควบคุมตำแหน่งจะเป็นสีเทา
Utsav Gupta

33

สำหรับผู้ใช้ Android Studio:

เรียกใช้โปรแกรมจำลอง

จากนั้นไปที่ Tools -> Android ->Android device monitor

เปิดEmulator Controlแท็บและใช้กลุ่มตัวควบคุมตำแหน่ง


ในกรณีของฉันไฟล์ทั้งหมดไม่สามารถแก้ไขได้ คุณมีความคิดหรือไม่?
Olkunmustafa

4
@MustafaOlkun มันอาจหมายความว่าตัวจำลองมีการควบคุมเหล่านั้นอยู่ มองหา "... " ถัดจากตัวจำลอง
Justin

3
ผมมีปัญหาเดียวกัน. พวกเขาไม่สามารถแก้ไขได้ และใช่มี "... " อย่างไรก็ตามเมื่อฉันใส่อะไรที่นั่นและส่งไม่มีการเปลี่ยนแปลงในแอปพลิเคชัน ....
KansaiRobot

14

สมมติว่าคุณมีการตั้งค่าและเรียกใช้ mapview:

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

และในการส่งพิกัดจำลองไปยังตัวจำลองจาก Eclipse ไปที่เมนู "หน้าต่าง" เลือก "แสดงมุมมอง"> "อื่น ๆ "> "ควบคุมตัวจำลอง" และคุณสามารถส่งพิกัดจากบานหน้าต่างควบคุมตัวจำลองที่ปรากฏขึ้น


3
แต่เพื่อนของฉันอยู่ที่ไหนลองจิจูดและละติจูด?
UMAR

1
ฉันได้ลองใช้ ans นี้ส่งค่าจำลองเพื่อควบคุมการจำลอง แต่เมื่อฉันกดปุ่มส่งมันไม่ได้ทำอะไรเลยไม่มีข้อความใดปรากฏขึ้นเพื่อยืนยันค่าที่ส่งหรือไม่ สิ่งที่เห็น GeoPoint g = myLocation.getMyLocation (); กำลังคืนค่า Null
UMAR

คุณแน่ใจหรือว่าคุณกำลังใช้ภายในrunOnFirstFix? เพราะนั่นเป็นเหตุการณ์ที่เกิดขึ้นเมื่ออุปกรณ์ได้รับตำแหน่ง GPS เป็นครั้งแรกดังนั้นหากเคยยกขึ้นมาgetMyLocationควรส่งคืนค่าอย่างแน่นอน
David Hedlund

13

สำหรับอีมูเลเตอร์ใหม่:

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

โดยทั่วไปให้คลิกที่ปุ่มสามจุดในตัวควบคุมอีมูเลเตอร์ (ทางด้านขวาของอีมูเลเตอร์) และมันจะเปิดเมนูซึ่งจะช่วยให้คุณสามารถควบคุมอีมูเลเตอร์รวมถึงตำแหน่ง


13

1. ผู้ใช้ Android Studio

หลังจากใช้ emulator goto Tools-> Android-> มอนิเตอร์อุปกรณ์ Android

คลิกที่แท็บ Emulator Control เปลี่ยนจากกลุ่มตัวควบคุมตำแหน่ง

2. ผู้ใช้ Eclipse

First In Eclipse ในเมนูเลือก "Window" จากนั้นเลือก "Open Perspective" จากนั้นเลือก "DDMS" เช่น Window-> Open Prespective-> DDMS

คุณจะเห็นบนแผงอุปกรณ์ด้านซ้ายและด้านขวาคุณจะเห็นแท็บต่าง ๆ เลือกแถบ "Emulator Control"

ที่ด้านล่างคุณจะเห็นแผงควบคุมตำแหน่ง เลือกแท็บ "กำหนดเอง"

ป้อนลองจิจูดและละติจูดในเท็กซ์บ็อกซ์จากนั้นคลิกปุ่มส่ง มันจะส่งตำแหน่งให้คุณจำลองและการประยุกต์ใช้

3. การใช้ telnet

ในคำสั่งเรียกใช้พิมพ์สิ่งนี้

telnet localhost 5554

หากคุณไม่ได้ใช้ windows คุณสามารถใช้ไคลเอ็นต์ telnet

หลังจากเชื่อมต่อกับ telnet แล้วให้ใช้คำสั่งต่อไปนี้เพื่อส่งตำแหน่งของคุณไปยังโปรแกรมจำลอง

geo fix long lat    
geo fix -121.45356 46.51119 4392

4. ใช้เครื่องมือ Google Maps ตามเบราว์เซอร์

มีโปรแกรมที่ใช้ GWT และ Google Maps API เพื่อเปิดเครื่องมือแผนที่บนเบราว์เซอร์เพื่อตั้งค่าตำแหน่ง GPS ในตัวจำลอง:

หุ่นยนต์ GPS-จำลอง


ตัวเลือกแรกนี้เหมาะกับฉันด้วยการเปลี่ยนแปลงเพียงเล็กน้อย ฉันไม่สามารถเปิดหน้าต่าง DDMS จาก Eclipse ได้ฉันมีหน้าสีเทาที่ว่างเปล่า แต่ในขณะที่ฉันมีโปรแกรมจำลองการทำงานถ้าฉันเปิด DDMS จากพรอมต์คำสั่ง (C: \ Program Files \ Android \ android-sdk \ tools \ ddms) จากนั้นฉันจะเห็นหน้าต่างที่คุณอธิบายด้วยอุปกรณ์ทางซ้ายและ "Emulator Control แท็บ "ด้านขวา ขอบคุณ!
Eric Barr

10

การใช้คำสั่ง "geo" ในคอนโซลอีมูเลเตอร์

ในการส่งข้อมูลตำแหน่งจำลองจากบรรทัดคำสั่ง:

  1. เปิดแอปพลิเคชันของคุณในตัวจำลอง Android และเปิดเทอร์มินัล / คอนโซลในไดเรกทอรี / เครื่องมือของ SDK

  2. เชื่อมต่อกับคอนโซลจำลอง:

    telnet localhost 5555 (แทนที่ 5555 ด้วยพอร์ตอะไรก็ตามที่อีมูเลเตอร์ของคุณกำลังทำงานอยู่)

  3. ส่งข้อมูลตำแหน่ง: * แก้ไขทางภูมิศาสตร์เพื่อส่งตำแหน่งทางภูมิศาสตร์ที่แน่นอน

    คำสั่งนี้ยอมรับลองจิจูดและละติจูดเป็นองศาทศนิยมและเลือกระดับความสูงเป็นเมตร ตัวอย่างเช่น:

    geo fix -121.45356 46.51119 4392

8

ฉันเขียนสคริปต์ไพ ธ อนเพื่อดันตำแหน่ง gps ไปยังตัวจำลองผ่าน telnet มันกำหนดแหล่งที่มาและสถานที่ปลายทาง นอกจากนี้ยังมีการชดเชยเวลาซึ่งช่วยให้คุณควบคุมระยะเวลาที่จะถูกผลักไปยังอุปกรณ์ สถานที่แห่งหนึ่งผลักผึ้งขึ้นหนึ่งครั้งต่อวินาที

ในตัวอย่างด้านล่างสคริปต์ย้ายจากเบอร์ลินไปฮัมบูร์กใน 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()

ทำงานเหมือนจับใจ! ขอบคุณสำหรับการแบ่งปัน.
อัลแบร์โต Gaona

mmmmm ฉันคิดว่ามีข้อผิดพลาดเล็กน้อย: ตราบใดที่ฉันรู้ว่าข้อความแก้ไขทางภูมิศาสตร์ได้รับลองจิจูดและละติจูดตามลำดับ: คุณกำลังส่งข้อความเหล่านั้นในลักษณะอื่น ดูคำตอบข้างต้น
Alberto Gaona

ไม่ทำงาน. อีมูเลเตอร์กำลังฟังบนพอร์ต แต่ไม่ได้รับอะไรเลย
Durga Swaroop


5

ใน Linux ที่พอร์ตการสื่อสารถูกบล็อก นำทางเทอร์มินัลไปยังโฟลเดอร์เครื่องมือแพลตฟอร์มด้านในandroid sdkและใช้คำสั่งนี้:

./adb -s #{device_name} emu geo fix #{longitude} #{latitude}

5

ใน Mac, Linux หรือ Cygwin:

echo 'geo fix -99.133333 19.43333 2202' | nc localhost 5554

นั่นจะทำให้คุณอยู่ในเม็กซิโกซิตี้ เปลี่ยนลองจิจูด / ละติจูด / ความสูงของคุณตามนั้น นั่นควรจะเพียงพอถ้าคุณไม่สนใจ nmea


คุณอาจต้องปรับ 5554 เป็นพอร์ตการจำลองเครื่องฟังปัจจุบันของคุณ
Alberto Gaona

5

วิธีแก้ปัญหาต่อไปนี้ใช้งานได้สำหรับฉัน - command line open และ write:

adb emu geo fix [longtitude] [latitude]

5

ในที่สุดด้วยการเปิดตัวล่าสุดของ Android Studio 4 และ Emulator อัปเดตใหม่ของเขาในวันที่ 23/23/2019 มันจะง่ายขึ้น เริ่มโปรแกรมจำลองของคุณและไปที่พารามิเตอร์ตัวจำลอง ... > ในแท็บ "เส้นทาง" คุณสามารถเลือกจุดสองจุดบนแผนที่จาก / ถึงและเริ่มเส้นทางใหม่ด้วยความเร็วในการเล่นที่ปรับได้ซึ่งสามารถไปได้มากกว่า 1000km / h!

ป้อนคำอธิบายรูปภาพที่นี่


ดังนั้นจะรับ lat lng ปัจจุบันได้อย่างไร
Mahmoud Ayman


4

อันดับแรกไปในส่วน DDMS ใน eclipse ของคุณมากกว่า open emulator Control .... ไปที่ส่วน Manual ตั้ง lat และ long แล้วกดปุ่ม Send


3

ฉันกำลังพยายามตั้งค่าการแก้ไขทางภูมิศาสตร์ผ่าน adb หลาย ๆ จุดและไม่สามารถทำให้แอปของฉันดูข้อมูล GPS ได้ แต่เมื่อฉันลองเปิด DDMS ให้เลือกกระบวนการของแอพและส่งพิกัดผ่านแท็บการควบคุมอีมูเลเตอร์มันทำงานได้ทันที


คุณไม่จำเป็นต้องระบุกระบวนการ ... หรือบางที DDMS ในปี 2010 ต้องทำเช่นนั้น

3

Dalvik Debug Monitor> เลือก Emulator> แท็บ Emulator Control> การควบคุมตำแหน่ง

DDMS - android_sdk / tools / ddms หรือ android_sdk / tools / monitor


2

หากคุณกำลังใช้ eclipse ให้ใช้ตัวควบคุม Emulator คุณสามารถตั้งค่าละติจูดและลองจิจูดด้วยตนเองและเรียกใช้แอพที่ใช้แผนที่เป็นตัวจำลอง


2

หากคุณใช้ Android Studio (1.3):

  • คลิกที่เมนู "เครื่องมือ"
  • "Android"
  • "การตรวจสอบอุปกรณ์ Android"
  • คลิกที่ Emulator ปัจจุบันของคุณ
  • แท็บ "การควบคุมการจำลอง"
  • ไปที่ "การควบคุมตำแหน่ง" แล้วป้อน Lat and Lon

2

เพียงแค่ให้คำตอบของ Alberto Gaona เป็นหนึ่งบรรทัด

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ทำงาน


ซับหนึ่งที่มีประโยชน์มาก! ในกรณีของฉันฉันต้องลบช่องว่างระหว่าง \ n: token = $ (cat ~ / .emulator_console_auth_token); cat <(echo -e "auth $ token \ ngeo fix 96.0290791 19.9041016 \ nexit") - | nc localhost 5554
Jeremie

1

หากการแก้ปัญหาข้างต้นไม่ทำงาน ลองสิ่งนี้:

ใน Android Manifest.xml ของคุณให้เพิ่มลิงค์สองลิงค์ต่อไปนี้ด้านนอกของแท็กแอปพลิเคชัน แต่ภายในแท็ก Manifest

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

1

ฉันไม่สามารถรับ GPS fix บนตัวจำลองเมื่อตัวจำลองกำลังเรียกใช้รูปภาพ Android โดยไม่ต้องใช้ Google API ทันทีที่ฉันเปลี่ยนภาพให้มี Google APIs วิธีการที่กล่าวถึงทั้งหมดในที่นี้เพื่อให้ GPS ทำงานได้

ตรวจสอบให้แน่ใจว่าคุณเลือกรูปภาพด้วย Google API เมื่อสร้าง AVD


คุณหมายถึงอะไรด้วย Image และในขณะที่สร้าง AVD ฉันจะเลือกรูปภาพด้วย Google API ได้อย่างไร ไม่มีตัวเลือกดังกล่าวขณะสร้าง AVD ใน eclipse
1911703

ตรวจสอบให้แน่ใจว่าคุณได้ดาวน์โหลดรูปภาพด้วย Google API ผ่านทางผู้จัดการ SDK Android
dvim

1

คำตอบที่กล่าวถึงแล้วหลายครั้งเพื่อใช้คำสั่งเชลล์ " geo fix ... " เป็นคำตอบที่ถูกต้อง แต่ในกรณีที่คุณใช้LocationClient.getLastLocation ()เพื่อดึงข้อมูลของคุณมันมีค่าที่จะกล่าวถึงว่ามันจะไม่ทำงานในตอนแรก คลาส LocationClient ใช้บริการ Google Play เพื่อดึงข้อมูลพิกัด สำหรับฉันแล้วสิ่งนี้เริ่มทำงานหลังจากรันแอพอีมูเลเตอร์แม็พหนึ่งครั้ง ในระหว่างการเริ่มต้นครั้งแรกคุณจะถูกขอให้อนุญาตให้แอป Google เข้าถึงตำแหน่งของคุณซึ่งฉันเดาว่าจะเป็นการหลอกลวง


1

สำหรับโครงการของฉันเองฉันได้พัฒนาบริการออนไลน์ซึ่งสามารถให้ตำแหน่งจำลองแก่อุปกรณ์จำลอง Android

มันใช้ geo nmea มากกว่า geo fix ซึ่งทำให้มันสามารถตั้งค่าความเร็ว, หลักสูตร, เวลาที่แม่นยำและอื่น ๆ นอกเหนือจาก lat / lon

บริการต้องการยูทิลิตีบรรทัดคำสั่ง nc (netcat) และไม่มีอะไรอื่น

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


1

คุณสามารถใช้โปรแกรมจำลองเช่นจีโนมซึ่งให้ความยืดหยุ่นในการจำลองตำแหน่ง GPS ปัจจุบันของคุณ ฯลฯ


@KansaiRobot ดีฉันไม่จำเป็นต้องติดตั้ง Google Play ( stackoverflow.com/questions/17831990/ … ) บนเครื่องจำลอง
Neil B

1

มีปลั๊กอินสำหรับ Android Studio ชื่อ“ Mock Location Plugin” คุณสามารถจำลองหลายจุดด้วยปลั๊กอินนี้ คุณสามารถดูคู่มือการใช้งานโดยละเอียดได้ในลิงค์นี้: Android Studio จำลองจุด GPS หลายจุดด้วยปลั๊กอินตำแหน่งจำลอง


1

เปิด Android studio-> เมนูเครื่องมือ -> Android-> Android Device Monitor-> Emulator Tab-> Location control-> ตั้งค่าละติจูดและลองจิจูดที่คุณต้องการและตรวจสอบโครงการของคุณตามความต้องการของคุณ


คุณสามารถตั้งค่าตำแหน่งคงที่ (ละติจูด & ลองจิจูด) ตำแหน่งใดที่คุณต้องการตรวจสอบโดยตรงในส่วนของการเข้ารหัส?
Premkumar Manipillai

0

ในคราส:

คุณอาจต้องลากหน้าต่าง DDMS ลง 'การควบคุมตำแหน่ง' อยู่ภายใต้ 'การดำเนินการของโทรศัพท์' และอาจซ่อนอยู่ในมุมมองคอนโซลขนาดปกติ (แถบที่มีคอนโซล, LogCat และอื่น ๆ อาจครอบคลุมได้!)

~


ภายใน DDMS ฉันพบภายใต้ Emulator Control แท็บด้านล่างการควบคุมตำแหน่ง
user914425
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.