নেভিগেশন অ্যাপের উদ্দেশ্য বাস্তবায়ন করুন

জেমিনি তিন ধরনের ইন্টেন্ট ফরম্যাট ব্যবহার করে যা আপনার নেভিগেশন অ্যাপ সাপোর্ট করতে পারে। এই পৃষ্ঠায় বিস্তারিতভাবে বর্ণিত ইন্টেন্ট ফিল্টারগুলো আপনার অ্যাপের ম্যানিফেস্টে ঘোষণা করার মাধ্যমে আপনি ইন্টারঅপারেবিলিটি অর্জন করতে এবং আপনার অ্যাপ ও জেমিনিকে ইন্টিগ্রেট করতে পারেন। ইন্টেন্ট সম্পর্কে আরও জানতে, Intent দেখুন।

জেমিনি নেভিগেশন অ্যাপের Intent ক্লাস নিম্নলিখিত ইন্টেন্টগুলো সমর্থন করে:

  • নেভিগেশন অভিপ্রায়
  • অনুসন্ধানের উদ্দেশ্য
  • কাস্টম অ্যাকশন ইন্টেন্ট

অভিপ্রায় ডেটা প্রবাহ

চিত্র ১. অভিপ্রায় তথ্যের প্রবাহ।

অভিপ্রায় ডেটার প্যারামিটার

ইনটেন্ট ডেটা একটি URI ফরম্যাট অনুসরণ করে, যেখানে আপনার পাঠানো ইনটেন্টের উপর ভিত্তি করে প্যারামিটার থাকে। কিছু প্যারামিটার ডেটার মধ্যেই সবসময় সরবরাহ করা থাকে। এর মানে হলো, আপনি আশা করতে পারেন যে সেগুলোর সবসময় একটি সুস্পষ্ট মান থাকবে। তবে, ঐচ্ছিক প্যারামিটারগুলোর মান সবসময় ডেটার মধ্যে সেট করা থাকে না। আরও তথ্যের জন্য, ডেটা টেস্ট দেখুন।

অফলাইন অভিপ্রায়

এই পৃষ্ঠায় তালিকাভুক্ত সমস্ত ইন্টেন্টের অফলাইন সংস্করণ উপলব্ধ আছে। আপনি তাদের স্কিমের শেষে .offline যুক্ত করে তাদের মধ্যে পার্থক্য করতে পারেন। উদাহরণস্বরূপ, নেভিগেশন ইন্টেন্টটি geo.offline স্কিম ব্যবহার করে। ম্যানিফেস্টের এই ইন্টেন্ট ফিল্টারগুলো অ্যাপটির অফলাইনে এই অ্যাকশনগুলো সমর্থন করার সক্ষমতা নির্দেশ করে।

ব্যবহারকারীর কোনো নির্দিষ্ট গন্তব্যে যাওয়ার অনুরোধ পূরণ করতে একটি ন্যাভিগেশন ইন্টেন্ট ব্যবহার করুন। এই গন্তব্যটি একটিমাত্র অবস্থান (ঠিকানা) অথবা একাধিক অবস্থান (যেমন, কফি শপ এবং গ্যাস স্টেশন) হতে পারে। ইন্টেন্টের ডেটা প্রতিটি ইন্টেন্টের জন্য নির্দিষ্ট করা একটি URI ফরম্যাট অনুসরণ করে।

অভিপ্রায় বিন্যাস

Intent ক্লাসটি ন্যাভিগেশন অ্যাপ ইন্টেন্টের জন্য নিম্নলিখিত ফর্ম্যাটটি ব্যবহার করে:

বিভাগ: android.intent.category.DEFAULT

পদক্ষেপ:

  • অ্যান্ড্রয়েড অটো এবং অ্যান্ড্রয়েড অটোমোটিভ ওএস: androidx.car.app.action.NAVIGATE
  • অন্যান্য ফর্ম ফ্যাক্টর: android.intent.action.NAVIGATE

পরিকল্পনা: geo

উদাহরণ:

  • geo:0,0?q=Googleplex
  • geo:0,0?q=1600+Amphitheatre+parkway&mode=b&intent=add_a_stop
  • geo:0,0?q=coffee+shop&mode=w&intent=navigation
  • geo:1.1,2.2?q=Starbucks+on+Main+Street&mode=w&intent=navigation

অ্যাপের প্রস্তাবিত আচরণ: নির্দিষ্ট স্থানে নেভিগেশন শুরু হবে অথবা ব্যবহারকারীকে একাধিক বিকল্প থেকে বেছে নিতে বলা হবে।

ম্যানিফেস্ট অভিপ্রায় ফিল্টার

আপনার অ্যাপের ম্যানিফেস্ট ফাইলে নিম্নলিখিত ইন্টেন্ট ফরম্যাটটি ঘোষণা করুন, যাতে জেমিনি বুঝতে পারে যে আপনার নেভিগেশন অ্যাপটি নেভিগেশন ইন্টেন্ট গ্রহণ করতে পারে।

অ্যান্ড্রয়েড অটো এবং অ্যান্ড্রয়েড অটোমোটিভ ওএস ছাড়া বাকি সব ফর্ম ফ্যাক্টর:

<intent-filter>
  <action android:name="android.intent.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

অ্যান্ড্রয়েড অটো এবং অ্যান্ড্রয়েড অটোমোটিভ ওএস:

<intent-filter>
  <action android:name="androidx.car.app.action.NAVIGATE" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

প্রদত্ত পরামিতি

প্রদত্ত ন্যাভিগেশন অ্যাপ ইনটেন্ট ডেটাতে নিম্নলিখিত প্যারামিটারগুলো উপলব্ধ থাকবে বলে আশা করা হচ্ছে।

অবস্থান অনুসন্ধান বা ভৌগোলিক স্থানাঙ্ক

অনুরোধ করা ডেটার ধরনের ওপর নির্ভর করে, প্রতিটি নেভিগেশন ইন্টেন্ট কোয়েরিতে এই প্যারামিটারগুলোর একটি বা উভয়ই থাকে:

  • অবস্থান অনুসন্ধান

    এটি সেই অবস্থানকে নির্দেশ করে যেখানে ব্যবহারকারী যেতে চাইছেন। ব্যবহারকারীর গন্তব্য নির্ধারণ করতে এই তথ্য ব্যবহার করুন।

    প্যারামিটার কী: q
    মান: ব্যবহারকারীর জিজ্ঞাসিত গন্তব্য।

    উদাহরণ: geo:0,0?q=Golden+Gate+Bridge
    ব্যাখ্যা: ব্যবহারকারী গোল্ডেন গেট ব্রিজে যেতে চান।

  • ভৌগোলিক স্থানাঙ্ক (অক্ষাংশ এবং দ্রাঘিমাংশ)

    ব্যবহারকারীর দিকনির্দেশনার জন্য ব্যবহৃত নির্দিষ্ট স্থানাঙ্ককে বোঝায়।

    প্যারামিটার কী: geo:lat,long
    মান: ব্যবহারকারীর জিজ্ঞাসিত স্থানাঙ্ক।

    উদাহরণ: geo:1.1,2.2?mode=w&intent=navigation
    ব্যাখ্যা: ব্যবহারকারী (1.1, 2.2) স্থানাঙ্কে যেতে চান।

ঐচ্ছিক পরামিতি

এই বিভাগে ন্যাভিগেশন অ্যাপ ইন্টেন্ট ডেটাতে সরবরাহ করা ঐচ্ছিক প্যারামিটারগুলো বর্ণনা করা হয়েছে।

উদ্দেশ্য

ব্যবহারকারীর উদ্দেশ্য নির্ধারণ করে। এই প্যারামিটারটি সেট করা না থাকলে, ডিফল্ট উদ্দেশ্য হিসেবে navigation বিবেচনা করা হয়।

প্যারামিটার কী: intent
সম্ভাব্য মানসমূহ:

  • navigation [ডিফল্ট মান] - গন্তব্য পরিবর্তন করে নেভিগেশন শুরু করে। `navigate to x`-এর মতো কোয়েরির জন্য এটি ব্যবহার করুন।
  • add_a_stop - পূর্ববর্তী গন্তব্যস্থলগুলোর পাশাপাশি স্টপটিকে পরবর্তী গন্তব্যস্থল হিসেবে যোগ করে। `add a stop at x`- এর মতো কোয়েরির জন্য এটি ব্যবহার করুন।
  • directions - নেভিগেশন শুরু না করেই পথের দিকনির্দেশনা দেখায়। ‘x-এ যাওয়ার দিকনির্দেশনা’-র মতো অনুসন্ধানের জন্য এটি ব্যবহার করুন।

উদাহরণ: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop ব্যাখ্যা: ব্যবহারকারী Bellevue-এর Bellevue Square-এ একটি স্টপ যোগ করতে চান, যার বর্তমান স্থানাঙ্ক [47.6, -122.2]।

এড়িয়ে চলুন

নেভিগেশনের ক্ষেত্রে পরিহার্য বিষয়গুলো নির্ধারণ করে।

প্যারামিটার কী: avoid
সম্ভাব্য মানসমূহ:

  • f - ফেরি
  • h - মহাসড়ক
  • t - টোল

উদাহরণ: geo:0,0?q=googleplex&avoid=tf
ব্যাখ্যা: ব্যবহারকারী টোল ও ফেরি এড়িয়ে গুগলপ্লেক্সে যেতে চান।

ভ্রমণ মোড

ভ্রমণ মোড বলতে ব্যবহারকারীর দ্বারা কোয়েরিতে নির্দিষ্ট করা পরিবহনের পদ্ধতিকে বোঝায়।

প্যারামিটার কী: mode
সম্ভাব্য মানসমূহ:

  • b - সাইকেল
  • d - ড্রাইভ
  • x - ট্যাক্সি
  • l - দুই চাকার যান
  • r - ট্রানজিট
  • w - হাঁটা

উদাহরণ: geo:0,0?q=Googleplex&mode=r
ব্যাখ্যা: ব্যবহারকারী গণপরিবহন ব্যবহার করে গুগলপ্লেক্সে যেতে চান।

প্রবেশ

প্রবেশের উৎস লিপিবদ্ধ করার জন্য ব্যবহৃত হয়।

সম্ভাব্য মান: সহকারী

উদাহরণ: geo:47.61594547836694,-122.20373173098756?entry=assistant

অনুসন্ধানের উদ্দেশ্য

গাড়ি চালানোর সময় কোনো একটি বিষয় অনুসন্ধান করতে এবং পথ বরাবর একাধিক ফলাফল দেখতে সার্চ ইন্টেন্ট ব্যবহার করুন।

অভিপ্রায় বিন্যাস

Intent ক্লাসটি সার্চ ইনটেন্টের জন্য নিম্নলিখিত ফরম্যাট ব্যবহার করে:

বিভাগ: android.intent.category.DEFAULT

অ্যাকশন: android.intent.action.VIEW

পরিকল্পনা: geo

উদাহরণ: geo:0,0?q=restaurants+nearby

অ্যাপের প্রস্তাবিত আচরণ: ব্যবহারকারীর অনুসন্ধানের সাথে মেলে এমন স্থানগুলির একটি তালিকা খুলুন।

ম্যানিফেস্ট অভিপ্রায় ফিল্টার

আপনার অ্যাপের ম্যানিফেস্ট ফাইলে নিম্নলিখিত ইন্টেন্ট ফরম্যাটটি ঘোষণা করুন, যাতে জেমিনি বুঝতে পারে যে আপনার নেভিগেশন অ্যাপটি সার্চ ইন্টেন্ট গ্রহণ করতে পারে:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

প্রদত্ত পরামিতি

প্রদত্ত সার্চ ইনটেন্ট ডেটাতে নিম্নলিখিত প্যারামিটারগুলো উপলব্ধ থাকবে বলে আশা করা হচ্ছে।

অবস্থান অনুসন্ধান

অবস্থান অনুসন্ধান হলো সেই স্থান যা ব্যবহারকারী গাড়ি চালানোর সময় খুঁজছেন। এই অনুসন্ধানটি অনির্দিষ্ট হতে পারে অথবা কোনো সক্রিয় নেভিগেশন রুট বরাবরও হতে পারে।

প্যারামিটার কী: q
মান: ব্যবহারকারীর অনুসন্ধানের শব্দ, যা কফি শপ বা কলেজের মতো কোনো স্থানের ধরন হতে পারে, তবে এর সাথে -আমার কাছাকাছি বা -সেরা রেটিং সহ-এর মতো পরিমাণবাচক শব্দও থাকতে পারে।

উদাহরণ: geo:0,0?q=restaurants+nearby
ব্যাখ্যা: ব্যবহারকারী কাছাকাছি রেস্তোরাঁ খুঁজতে চান।

কাস্টম অ্যাকশন ইন্টেন্ট

দুর্ঘটনা রিপোর্ট করা এবং নেভিগেশন শেষ করার মতো কাস্টম অ্যাকশনের জন্য একটি কাস্টম ইন্টেন্ট ব্যবহার করুন। মূল অ্যাকশন টাইপটি act কোয়েরি প্যারামিটার দ্বারা সংজ্ঞায়িত করা হয়। আপনি অ্যাকশন টাইপের উপর নির্ভর করে অতিরিক্ত প্যারামিটার সেট করতে পারেন।

অভিপ্রায় বিন্যাস

Intent ক্লাসটি কাস্টম অ্যাকশন ইন্টেন্টের জন্য নিম্নলিখিত ফর্ম্যাটটি ব্যবহার করে:

বিভাগ: android.intent.category.DEFAULT

অ্যাকশন: android.intent.action.VIEW

স্কিম: geo.action

উদাহরণ: geo.action:?act=report&accident_type=major

ম্যানিফেস্ট অভিপ্রায় ফিল্টার

আপনার নেভিগেশন অ্যাপ যে কাস্টম অ্যাকশন ইন্টেন্ট গ্রহণ করতে পারে, তা জেমিনিকে জানানোর জন্য আপনার অ্যাপের ম্যানিফেস্ট ফাইলে নিম্নলিখিত ইন্টেন্ট ফরম্যাটটি ঘোষণা করুন।

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo.action" />
</intent-filter>

প্রদত্ত পরামিতি

সরবরাহকৃত কাস্টম অ্যাকশন ইন্টেন্ট ডেটাতে নিম্নলিখিত প্যারামিটারগুলো উপলব্ধ থাকবে বলে আশা করা হচ্ছে:

কর্মের ধরণ

এটি ব্যবহারকারী যে ধরনের কাস্টম অ্যাকশন সম্পাদন করতে চান, তা নির্ধারণ করে।

প্যারামিটার কী: act

উদাহরণ:

  • geo.action:?act=report_crash&accident_type=major
    ব্যাখ্যা: ব্যবহারকারী একটি বড় দুর্ঘটনার প্রতিবেদন করতে চান।

  • geo.action:?act=mute
    ব্যাখ্যা: ব্যবহারকারী ভয়েস নির্দেশনা মিউট করতে চান।

  • geo.action:?act=exit_navigation
    ব্যাখ্যা: ব্যবহারকারী বর্তমান নেভিগেশন থেকে প্রস্থান করতে চান।

অ্যাপের প্রস্তাবিত আচরণ: নেভিগেশন অ্যাপে অনুরোধ করা কাজটি সম্পন্ন করুন অথবা একটি অসমর্থিত কাজের বার্তা দেখান।

নিম্নোক্ত চিত্রে রেসপন্স কোয়েরিতে কী-ভ্যালু পেয়ারের একটি উদাহরণ দেখানো হয়েছে:

কাস্টম অ্যাকশন ইন্টেন্ট ডেটা ফ্লো

চিত্র ২. কাস্টম অ্যাকশন ইন্টেন্ট ডেটা ফ্লো।

কী-ভ্যালু পেয়ার:

"act": "report_crash"
"road_direction": other_side"

প্রতিটি কাস্টম অ্যাকশনের কী (key) হিসেবে সর্বদা একটি act প্যারামিটার থাকে। পূর্বোক্ত উদাহরণ কোডে, কিছু অ্যাকশনের অতিরিক্ত কী-ভ্যালু পেয়ার থাকতে পারে। যেমন, act=report_crash এই অতিরিক্ত কী-গুলো সমর্থন করে: accident_type এবং road_direction

accident_type কী-টি minor এবং major এই দুটি মান সমর্থন করতে পারে।

সম্ভাব্য মান

এই সারণিতে সম্ভাব্য মানগুলো তালিকাভুক্ত করা হয়েছে, যা জেমিনি নেভিগেশন অ্যাপে ব্যবহারকারীর সম্পন্ন করতে চাওয়া কাজটি হিসেবে প্রদান করতে পারে।

মূল্য বর্ণনা ঐচ্ছিক প্যারামিটার কী ঐচ্ছিক প্যারামিটার মান
allow_ferries ফেরি চলাচলের অনুমতি দিতে রুট পছন্দ পরিবর্তন করুন।
allow_highways হাইওয়ে ব্যবহারের অনুমতি দিতে রুট পছন্দ পরিবর্তন করুন।
allow_tolls টোল চালু করার জন্য রুট পছন্দ পরিবর্তন করুন।
avoid_ferries ফেরি এড়াতে রুট পছন্দ পরিবর্তন করুন।
avoid_highways হাইওয়ে এড়ানোর জন্য পথের পছন্দ পরিবর্তন করুন।
avoid_tolls টোল এড়াতে পছন্দের পথ পরিবর্তন করুন।
distance_to_destination গন্তব্যস্থলের দূরত্ব দেখান।
distance_to_next_turn পরবর্তী মোড় পর্যন্ত দূরত্ব দেখান।
eta গন্তব্যে পৌঁছানোর আনুমানিক সময় দেখান।
exit_navigation নেভিগেশন থেকে প্রস্থান করুন বা বাতিল করুন।
follow_mode ম্যাপ ভিউ পরিবর্তন করে ফলো মোডে নিয়ে যান।
go_back পূর্ববর্তী মানচিত্র কার্যক্রমে ফিরে যান।
hide_satellite স্যাটেলাইট তথ্য লুকানোর জন্য ম্যাপ সেটিং পরিবর্তন করুন।
hide_traffic ট্র্যাফিকের তথ্য লুকাতে ম্যাপ সেটিং পরিবর্তন করুন।
mute ভয়েস গাইডেন্স মিউট করুন।
query_current_road ব্যবহারকারী বর্তমানে কোন রাস্তায় আছেন তা দেখান।
query_destination গন্তব্য কী তা দেখান।
query_next_turn পরবর্তী চালটি কী তা দেখান।
report_crash ক্র্যাশের রিপোর্ট করুন। accident_type minor
major
road_direction this_side
other_side
report_hazard বিপদ সম্পর্কে অবহিত করুন। hazard_type animal
broken_traffic_light
construction
flooding
fog
hail
ice
missing_sign
object_on_road
pothole
roadkill
snow
vehicle
weather
road_direction this_side
other_side
location_on_road on_road
on_shoulder
report_police পুলিশি কার্যকলাপের প্রতিবেদন করুন। road_direction this_side
other_side
report_road_closure রাস্তা বন্ধ থাকার বিষয়ে জানান। road_closure_type partial
full
report_traffic ট্র্যাফিক রিপোর্ট করুন। traffic_type moderate
heavy
standstill
road_direction this_side
other_side
route_overview পথের সংক্ষিপ্ত বিবরণ দেখুন।
show_alternates বিকল্প পথ দেখান।
show_directions_list ধাপে ধাপে নির্দেশনা দেখান।
show_satellite মানচিত্রে স্যাটেলাইট তথ্য দেখান।
show_traffic মানচিত্রে ট্র্যাফিক দেখান।
time_to_destination গন্তব্যে পৌঁছানোর আনুমানিক সময় দেখান।
time_to_next_turn পরবর্তী পালায় পৌঁছানোর আনুমানিক সময় দেখান।
unmute ভয়েস গাইডেন্স আনমিউট করুন।

নেভিগেশন স্থিতি পুনরুদ্ধার করুন

ব্যবহারকারী যখন তাদের ভ্রমণের অবস্থা সম্পর্কে জিজ্ঞাসা করেন, তখন জেমিনি যেন তাদের সঠিক ও রিয়েল-টাইম তথ্য সরবরাহ করতে পারে, তা নিশ্চিত করার জন্য আপনার অ্যাপকে অবশ্যই NavigationManager কার সার্ভিস ব্যবহার করে নেভিগেশন মেটাডেটা প্রদান করতে হবে। বাস্তবায়ন নির্দেশনার জন্য, ‘নেভিগেশন মেটাডেটা যোগাযোগ’ দেখুন।