আমি পরীক্ষার জন্য অ্যানড্রয়েড এমুলেটরটিতে দ্রাঘিমাংশ এবং অক্ষাংশ পেতে চাই।
কেউ কীভাবে এটি অর্জন করতে পারে আমাকে গাইড করতে পারে?
আমি এমুলেটরটির অবস্থান কীভাবে একটি পরীক্ষার অবস্থানে সেট করব?
আমি পরীক্ষার জন্য অ্যানড্রয়েড এমুলেটরটিতে দ্রাঘিমাংশ এবং অক্ষাংশ পেতে চাই।
কেউ কীভাবে এটি অর্জন করতে পারে আমাকে গাইড করতে পারে?
আমি এমুলেটরটির অবস্থান কীভাবে একটি পরীক্ষার অবস্থানে সেট করব?
উত্তর:
আপনি টেলনেটের মাধ্যমে এমুলেটরটির সাথে সংযোগ স্থাপন করতে পারেন। তারপরে আপনার কাছে একটি এমুলেটর কনসোল রয়েছে যা আপনাকে নির্দিষ্ট ডেটা যেমন জিও ফিক্স, নেটওয়ার্ক ইত্যাদি প্রবেশ করতে দেয় lets
কনসোলটি কীভাবে ব্যবহার করবেন তা এখানে বিস্তৃতভাবে ব্যাখ্যা করা হয়েছে । কনসোলের সাথে সংযোগ রাখতে একটি কমান্ড লাইন খুলুন এবং টাইপ করুন
telnet localhost 5554
তারপরে আপনি জিওএস কমান্ডটি অক্ষাংশ, দ্রাঘিমাংশ এবং জিপিএস অবস্থান সরবরাহকারীর সাহায্যে সমস্ত প্রোগ্রামগুলিতে প্রেরণ করা ডিভাইসে প্রয়োজন হলে উচ্চতা নির্ধারণ করতে পারেন। আরও নির্দেশাবলীর জন্য উপরের লিঙ্কটি দেখুন।
কনসোলে চালানোর জন্য নির্দিষ্ট কমান্ডটি হ'ল
geo fix <longitude value> <latitude value>
আমি এই সাইটটি একটি বাস্তববাদী ল্যাট / এলএনজি: http://itouchmap.com/latlong.html সন্ধানের জন্য দরকারী বলে মনে করেছি
আপনার যদি আরও বেশি প্রয়োজন হয় তবে একটি সমন্বয় আপনি একটি রুট সহ একটি কিমিএল ফাইল ব্যবহার করতে পারেন পাশাপাশি এটি এই নিবন্ধে বর্ণিত কিছুটা । আমি এই মুহুর্তে এর চেয়ে ভাল উত্স খুঁজে পাচ্ছি না।
geo fix
কমান্ড যদি কেবল প্রাপ্তিসাধ্য auth
প্রথম। মূল্য উল্লেখ করা যেতে পারে ...
এখানে কেউ এমুলেটর নিজেই সমাধানের মধ্যে অন্তর্নির্মিত উল্লেখ করেনি, তাই ভবিষ্যতের দর্শনার্থীদের জন্য, আমি এটি ভিজ্যুয়ালগুলির সাথে ভাগ করতে চাই।
প্রথমে আপনার অ্যান্ড্রয়েড এমুলেটরটি চালান এবং নীচে প্রদর্শিত মেনু বোতামে (3 ডট) ক্লিক করুন:
তারপরে বাম ফলক থেকে, অবস্থান নির্বাচন করুন এবং আপনার প্রয়োজন অনুসারে স্থানাঙ্কগুলি পরিবর্তন করুন। প্রেরণ বোতাম টিপানোর পরে , পরিবর্তনগুলি অবিলম্বে কার্যকর হবে (আমি আপনাকে আরও ভাল বোঝার জন্য Google মানচিত্র খোলার পরামর্শ দিই)।
অ্যান্ড্রয়েড স্টুডিও সংস্করণ: ২.৩.৩
এছাড়াও, আপনার অ্যাপ্লিকেশনটিতে রিয়েল টাইমে আসা বিভিন্ন স্থানগুলি তৈরি করতে আপনি জিপিএক্স ফাইলটি ব্যবহার করতে পারেন। গুগল ম্যাপের দিকনির্দেশ লিঙ্ক থেকে এই ফাইলটি তৈরি করা খুব সহজ:
আপনার এমুলেটরে তৈরি ফাইলটি লোড করতে, গতি চয়ন করতে এবং নীচে সবুজ প্লে বোতামটি টিপতে "লোড জিপিএস / কেএমএল" বোতামটি ব্যবহার করুন। নীচের ছবিতে যেমন দেখানো হয়েছে তেমন অবস্থানগুলি রিয়েল টাইমে প্রেরণ করা হবে।
geo fix
নির্দিষ্ট অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কগুলি ব্যবহার ও ম্যানুয়ালি নির্ধারণ করার চেয়ে আমি এমুলেটারের জিপিএস স্থানাঙ্ক সেট করার আরও ভাল উপায়ের সন্ধান করছিলাম ।
কিছু খুঁজে পেতে অক্ষম, আমি এমুলেটরটিতে জিপিএস অবস্থান নির্ধারণের জন্য ব্রাউজার-ভিত্তিক মানচিত্র সরঞ্জাম চালু করতে জিডাব্লুটি এবং গুগল ম্যাপস এপিআই ব্যবহার করে এমন একটি ছোট্ট প্রোগ্রাম রেখেছি:
আশা করি এটি অন্যদের যারা এই সমস্যা / প্রশ্নটি ছাড়িয়ে নিঃসন্দেহে হোঁচট খাবেন তাদেরও সহায়তা করতে পারে।
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
। কোনও ধারণা কেন এটি কাজ করছে না? আমি ডিফল্ট নেক্সাস 4
অ্যান্ড্রয়েড স্টুডিও ব্যবহারকারীদের জন্য:
এমুলেটর চালান,
তারপরে, যান 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"/>
এবং Eclipse থেকে এমুলেটরটিতে মক কোঅর্ডিনেটগুলি প্রেরণ করতে, "উইন্ডো" মেনুতে যান, "প্রদর্শন দেখান"> "অন্যান্য"> "এমুলেটর নিয়ন্ত্রণ" নির্বাচন করুন এবং আপনি প্রদর্শিত এমুলেটর নিয়ন্ত্রণ ফলক থেকে স্থানাঙ্ক প্রেরণ করতে পারেন।
runOnFirstFix
? কারণ এটি সেই ইভেন্টটি উত্থাপিত হয়েছিল যখন ডিভাইসটি প্রথমে জিপিএস অবস্থান গ্রহণ করে, তাই যদি এটি কখনও উত্থাপিত হয় getMyLocation
তবে অবশ্যই একটি মান ফেরত দেওয়া উচিত।
নতুন এমুলেটর জন্য:
http://developer.android.com/tools/devices/emulator.html#extended
মূলত, এমুলেটর নিয়ন্ত্রণের তিনটি বিন্দু বোতামে ক্লিক করুন (এমুলেটারের ডানদিকে) এবং এটি একটি মেনু খুলবে যা আপনাকে স্থান সহ এমুলেটর নিয়ন্ত্রণ করতে দেয়
1. অ্যান্ড্রয়েড স্টুডিও ব্যবহারকারী
এমুলেটরটি চালানোর পরে Goo সরঞ্জাম-> অ্যান্ড্রয়েড-> অ্যান্ড্রয়েড ডিভাইস মনিটর
অবস্থান নিয়ন্ত্রণ গ্রুপ থেকে এমুলেটর নিয়ন্ত্রণ ট্যাব পরিবর্তন ক্লিক করুন।
২.গ্রহীনের ব্যবহারকারীরা।
Eclipse in Menu প্রথমে "উইন্ডো" নির্বাচন করুন তারপরে "ওপেন দৃষ্টিভঙ্গি" নির্বাচন করুন তারপরে "DDMS" নির্বাচন করুন। অর্থাত উইন্ডো-> ওপেন প্রিসিপেক্টি-> ডিডিএমএস।
আপনি বাম পাশের ডিভাইসগুলি প্যানেলে এবং ডানদিকে আপনি বিভিন্ন ট্যাব দেখতে পাবেন। "এমুলেটর নিয়ন্ত্রণ" ট্যাব নির্বাচন করুন।
নীচে আপনি অবস্থান নিয়ন্ত্রণ প্যানেল দেখতে পাবেন। "ম্যানুয়াল" ট্যাব নির্বাচন করুন।
পাঠ্যবক্সগুলিতে দ্রাঘিমাংশ এবং অক্ষাংশ লিখুন তারপরে পাঠান বোতামটি ক্লিক করুন। এটি আপনাকে এমুলেটর এবং অ্যাপ্লিকেশনটিতে অবস্থান প্রেরণ করবে।
৩. টেলনেট ব্যবহার করা।
রান কমান্ডে এটি টাইপ করুন।
telnet localhost 5554
আপনি যদি উইন্ডো ব্যবহার না করেন তবে আপনি যে কোনও টেলনেট ক্লায়েন্ট ব্যবহার করতে পারেন।
টেলনেটের সাথে সংযুক্ত হওয়ার পরে এমুলেটরটিতে আপনার অবস্থান প্রেরণের জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করুন।
geo fix long lat
geo fix -121.45356 46.51119 4392
৪. ব্রাউজার ভিত্তিক গুগল ম্যাপস সরঞ্জামটি ব্যবহার করুন
এমুলেটরে জিপিএসের অবস্থান নির্ধারণের জন্য ব্রাউজার-ভিত্তিক মানচিত্র সরঞ্জাম চালু করতে জিডব্লিউটি এবং গুগল ম্যাপস এপিআই ব্যবহার করে এমন একটি প্রোগ্রাম রয়েছে:
এমুলেটর কনসোলে "জিও" কমান্ড ব্যবহার করা হচ্ছে
কমান্ড লাইন থেকে মক অবস্থান ডেটা প্রেরণ করতে:
অ্যান্ড্রয়েড এমুলেটরটিতে আপনার অ্যাপ্লিকেশন চালু করুন এবং আপনার এসডিকে / সরঞ্জাম ডিরেক্টরিতে একটি টার্মিনাল / কনসোল খুলুন।
এমুলেটর কনসোলের সাথে সংযুক্ত করুন:
telnet localhost 5555
(আপনার এমুলেটরটি যে কোনও বন্দরে চলছে তার সাথে 5555 প্রতিস্থাপন করুন)
অবস্থানের ডেটা প্রেরণ করুন: একটি নির্দিষ্ট জিও-লোকেশন পাঠাতে জিও ফিক্স।
এই আদেশটি দশমিক ডিগ্রীতে দ্রাঘিমাংশ এবং অক্ষাংশ এবং মিটারে একটি inচ্ছিক উচ্চতা গ্রহণ করে ts উদাহরণ স্বরূপ:
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}
ম্যাক, লিনাক্স বা সাইগউইনে:
echo 'geo fix -99.133333 19.43333 2202' | nc localhost 5554
এটি আপনাকে মেক্সিকো সিটিতে রাখবে। সেই অনুযায়ী আপনার দ্রাঘিমাংশ / অক্ষাংশ / উচ্চতা পরিবর্তন করুন। আপনি যদি nmea তে আগ্রহী না হন তবে এটি যথেষ্ট।
নিম্নলিখিত সমাধানটি আমার পক্ষে কাজ করেছে - কমান্ড লাইনটি খুলুন এবং লিখুন:
adb emu geo fix [longtitude] [latitude]
অবশেষে অ্যান্ড্রয়েড স্টুডিও 4 এর সর্বশেষ প্রকাশ এবং তার নতুন এমুলেটর আপডেট 10/23/2019 এর সাথে এটি আরও সহজ হয়ে যায়। আপনার এমুলেটরটি শুরু করুন এবং এমুলেটর প্যারামিটারগুলিতে যান ...> "রুটস" ট্যাবে আপনি মানচিত্রের উপর থেকে / এ দুটি পয়েন্ট বেছে নিতে পারেন এবং 1000 কিলোমিটার / ঘন্টারও বেশি যেতে পারে এমন সামঞ্জস্যযোগ্য প্লেব্যাক গতি দিয়ে একটি নতুন রুট শুরু করতে পারেন!
ব্যবহারকারীর অবস্থান প্রাপ্তি দেখুন
মক অবস্থান ডেটা প্রদানের নিচে দেখুন । আপনি এর সমাধান খুঁজে পাবেন।
প্রথমে আপনার এমুলেটর কন্ট্রোলের চেয়ে ডিগ্রি ডিগ্রি বিভাগে যান .... ম্যানুয়াল বিভাগে ল্যাট এবং লম্বা সেট করুন এবং তারপরে সেন্ড বোতাম টিপুন
আমি অনেকগুলি পয়েন্টের জন্য অ্যাডাবির মাধ্যমে জিও ফিক্স সেট করার চেষ্টা করছিলাম এবং কোনও অ্যাপ্লিকেশন কোনও জিপিএস ডেটা দেখতে আমার অ্যাপ্লিকেশনটি পাচ্ছিল না। তবে আমি যখন ডিডিএমএস খোলার চেষ্টা করেছি, তখন আমার অ্যাপ্লিকেশনটির প্রক্রিয়াটি নির্বাচন করে এবং ঠিক তখনই এটি কাজ করেছে এমুলেটর নিয়ন্ত্রণ ট্যাবের মাধ্যমে স্থানাঙ্ক প্রেরণ করে।
আপনি যদি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করেন (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
কাজ করলে ভাল হত ।
উপরের সমাধানগুলি যদি কাজ না করে। এটা চেষ্টা কর:
আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল এর ভিতরে নিম্নলিখিত দুটি লিঙ্ক যুক্ত করুন আবেদন ট্যাগের বাইরে , তবে অবশ্যই আপনার ম্যানিফেস্টের ট্যাগের ভিতরে
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
যখন এমুলেটর গুগল এপিআই ছাড়া অ্যান্ড্রয়েড চিত্র চালাচ্ছিল তখন আমি এমুলেটরটিতে একটি জিপিএস ফিক্স পেতে পারিনি। আমি গুগল এপিআইগুলিকে ধারণ করতে এখানে ইমেজ পরিবর্তন করার সাথে সাথে এখানে জিপিএস ফিক্স কাজ করার উপায় উল্লেখ করা হয়েছে।
নিশ্চিত হয়ে নিন যে আপনি এভিডি তৈরি করার সময় গুগল এপিআই সহ একটি চিত্র নির্বাচন করেছেন।
" জিও ফিক্স ... " শেল কমান্ডটি ব্যবহার করার জন্য ইতিমধ্যে উল্লিখিত একাধিকবার উত্তর সঠিক উত্তর। তবে আপনি যদি আপনার ডেটা পুনরুদ্ধার করার জন্য লোকেশনক্লিয়েন্ট.গেটলাস্টলোকেশন () ব্যবহার করেন তবে এটি প্রথমে কার্যকর হবে না তা উল্লেখ করার মতো। অবস্থানক্লায়েন্ট শ্রেণি স্থানাঙ্কগুলি পুনরুদ্ধার করতে গুগল প্লে পরিষেবা ব্যবহার করে। আমার জন্য এটি একবার এমুলেটর ম্যাপস অ্যাপ চালনার পরে কাজ শুরু করে started প্রথম শুরু করার সময় আপনাকে গুগল অ্যাপ্লিকেশনগুলিকে আপনার অবস্থানটিতে অ্যাক্সেসের অনুমতি দেওয়ার জন্য বলা হবে, যা আমি অনুমান করি যে কৌশলটি সফল হয়।
নিজস্ব প্রকল্পের জন্য, আমি একটি অনলাইন পরিষেবা বিকাশ করেছি যা অ্যান্ড্রয়েড এমুলেটরকে সিমুলেটেড অবস্থান সরবরাহ করতে পারে।
এটি জিও ফিক্সের পরিবর্তে জিও এনমিএ ব্যবহার করে যা এটি কেবল ল্যাথ / লম্ব ছাড়াও গতি, কোর্স, সঠিক সময় ইত্যাদি নির্ধারণ করতে দেয়।
পরিষেবাটির জন্য এনসি (নেটক্যাট) কমান্ড লাইন ইউটিলিটি এবং অন্য কিছুই দরকার নেই।
আপনি জেনিমোশনের মতো একটি এমুলেটর ব্যবহার করতে পারেন যা আপনাকে আপনার বর্তমান জিপিএস অবস্থান ইত্যাদি অনুকরণ করার নমনীয়তা দেয় etc.
অ্যান্ড্রয়েড স্টুডিওর জন্য "মক লোকেশন প্লাগইন" নামে একটি প্লাগইন রয়েছে। আপনি এই প্লাগইনটি দিয়ে একাধিক পয়েন্ট অনুকরণ করতে পারেন। আপনি এই লিঙ্কটিতে ব্যবহারের বিশদ ম্যানুয়ালটি পেতে পারেন: অ্যান্ড্রয়েড স্টুডিও। মোক অবস্থান প্লাগইন সহ একাধিক জিপিএস পয়েন্ট অনুকরণ করুন
অ্যান্ড্রয়েড স্টুডিও-> সরঞ্জাম মেনু-> অ্যান্ড্রয়েড-> অ্যান্ড্রয়েড ডিভাইস মনিটর-> এমুলেটর ট্যাব-> অবস্থান নিয়ন্ত্রণ-> আপনার প্রয়োজনীয় অক্ষাংশ এবং দ্রাঘিমাংশ সেট করুন এবং আপনার প্রয়োজন অনুযায়ী আপনার প্রকল্পটি পরীক্ষা করুন
গ্রহনে:
আপনাকে ডিডিএমএস উইন্ডোটি নীচে টেনে আনতে হতে পারে। 'লোকেশন কন্ট্রোলস' 'টেলিফোনি অ্যাকশনস'-এর অধীনে অবস্থিত এবং সাধারণ আকারের কনসোল ভিউ দ্বারা লুকানো থাকতে পারে (কনসোলযুক্ত বার, লগগ্যাট ইত্যাদি এটি আচ্ছাদন করতে পারে!)
~