চালিয়ে যাওয়ার আগে, ড্রাইভিং বিক্ষেপ নির্দেশিকা পর্যালোচনা করুন।
এই পৃষ্ঠায় গাড়ি ব্যবহারকারীর অভিজ্ঞতা (UX) বিধিনিষেধের নিয়মগুলি বর্ণনা করা হয়েছে যা আপনি একাধিক UX বিধিনিষেধের নিয়ম কনফিগারেশন তৈরি করতে ব্যবহার করতে পারেন (উদাহরণস্বরূপ, ইউরোপীয় ইউনিয়ন বনাম জাপান) এবং তারপর রান টাইমে কোন নিয়মগুলি প্রয়োগ করতে হবে তা নির্ধারণ করতে পারেন। আরও তথ্যের জন্য, CarUxRestrictions দেখুন।
কার ইউএক্স রেস্ট্রিকশনস পরিষেবা ডেভেলপারদের একটি নতুন কার ইউএক্স রেস্ট্রিকশনস কনফিগারেশন সংজ্ঞায়িত করতে সক্ষম করে। যদি কোনও ডেভেলপার সীমাবদ্ধতার নিয়মগুলি পরিবর্তন করতে চান (যেমন স্থানীয় সুরক্ষা মান মেনে চলা), তাহলে ডেভেলপার নতুন কনফিগারেশন সংজ্ঞায়িত করতে এপিআই ব্যবহার করতে পারেন।
কনফিগারেশন সেট করার API শুধুমাত্র নতুন কনফিগারেশনেই স্থায়ী হয়। অন্য কথায়, কনফিগারেশনটি তাৎক্ষণিকভাবে কার্যকর হয় না । পরিবর্তে, UX সীমাবদ্ধতা পরিষেবা পুনরায় চালু হলে এবং গাড়িটি পার্কে থাকলে নতুন কনফিগারেশনটি লোড হয়। নতুন কনফিগারেশনটি পুনরায় লোড করার আগে গাড়ি পরিষেবা নিশ্চিত করে যে গাড়িটি পার্কে আছে।
নতুন UX সীমাবদ্ধতা পরিষেবা পদ্ধতির পাশাপাশি, কনফিগারেশন তৈরির জন্য API প্রদান করা হয়। গিয়ার নির্বাচন এবং গতির অবস্থা তিনটি ড্রাইভিং অবস্থার মধ্যে একটিতে রূপান্তরিত হয়:
- পার্ক করা আছে। পার্কে সরঞ্জাম।
- অলস অবস্থায়। পার্কে গিয়ার নেই এবং গতি শূন্য।
- চলমান। গিয়ার পার্কে নেই এবং গতি শূন্য নয়।
অ্যাপগুলি কীভাবে গাড়ির ড্রাইভিং অবস্থা এবং সংশ্লিষ্ট UX বিধিনিষেধ ব্যবহার করে তা জানতে, গাড়ি চালানোর অবস্থা এবং UX বিধিনিষেধ ব্যবহার করুন দেখুন।
ড্রাইভ অবস্থার উপর ভিত্তি করে সীমাবদ্ধতা কনফিগারেশন
ড্রাইভারের মনোযোগ নষ্ট না করার জন্য, অ্যান্ড্রয়েড ড্রাইভিং অবস্থাকে UX সীমাবদ্ধতার একটি সেটে ম্যাপ করে।
/packages/services/Car/+/android16-qpr1-release/car-lib/src/android/car/drivingstate/CarDrivingStateManager.java- পার্ক করা। অবাধ।
- অলস। কোনও ভিডিও নেই এবং কোনও কনফিগারেশন স্ক্রিন নেই।
- চলাচল। সম্পূর্ণরূপে সীমাবদ্ধ (সকল বিধিনিষেধ বাধ্যতামূলক)।
উপরে চিত্রিত ম্যাপিংটি পূর্বে নির্ধারিত এবং একটি XML রিসোর্স হিসাবে কনফিগার করা হয়েছে।
/packages/services/Car/+/android16-qpr1-release/car-lib/src/android/car/drivingstate/CarDrivingStateManager.java এরপর নিয়মগুলো মেমোরিতে সংরক্ষণ করে। এরপর পরিষেবাটি বর্তমান ড্রাইভিং অবস্থাকে UX Restrictions-এ ম্যাপ করে এবং বর্তমান বিধিনিষেধগুলো পুরো সিস্টেমে সম্প্রচার করে।<!-- No restrictions when car is parked -->
<DrivingState car:state="parked">
<Restrictions car:requiresDistractionOptimization="false"
car:uxr="baseline"/>
</DrivingState>
<!-- Restrictions when car is idling -->
<DrivingState car:state="idling">
<Restrictions car:requiresDistractionOptimization="true"
car:uxr="no_video|no_config"/>
</DrivingState>
<!-- Restrictions for speed >= 0 m/s -->
<DrivingState car:state="moving" car:minSpeed="0.0">
<Restrictions car:requiresDistractionOptimization="true"
car:uxr="fully_restricted"/>
</DrivingState>একাধিক প্রদর্শনের জন্য কনফিগারেশন
ডিফল্টরূপে, অতিরিক্ত ডিসপ্লেতে কোনও বিধিনিষেধ প্রযোজ্য হয় না। একাধিক ডিসপ্লের জন্য বিধিনিষেধ কনফিগারেশন তৈরি করতে, সেই ডিসপ্লের জন্য ফিজিক্যালপোর্টের সাথে RestrictionMapping ট্যাগ অন্তর্ভুক্ত করুন। প্রতিটি ডিসপ্লেতে উপযুক্ত বিধিনিষেধ স্বয়ংক্রিয়ভাবে প্রয়োগ করা হয়। নিম্নলিখিত উদাহরণে, ফিজিক্যাল পোর্ট আইডি 1 এবং 2 সহ ডিসপ্লেগুলির বিভিন্ন কনফিগারেশন রয়েছে:
<RestrictionMapping car:physicalPort="1">
<DrivingState car:state="moving">
<Restrictions car:requiresDistractionOptimization="true" car:uxr="no_keyboard|no_video"/>
</DrivingState>
</RestrictionMapping>
<RestrictionMapping car:physicalPort="2">
<DrivingState car:state="moving">
<Restrictions car:requiresDistractionOptimization="true" car:uxr="no_video"/>
</DrivingState>
</RestrictionMapping>সীমাবদ্ধতা মোডের জন্য কনফিগারেশন
আপনি মোডের জন্য যেকোনো নাম নির্বাচন করতে পারেন, যেমন teen । নিম্নলিখিত উদাহরণে, ডিফল্ট এবং যাত্রী মোডের জন্য বিভিন্ন সীমাবদ্ধতা কনফিগার করা হয়েছে (পূর্বে, শুধুমাত্র যাত্রী মোড সমর্থিত ছিল):
<DrivingState car:state="idling">
<Restrictions car:mode="passenger" car:requiresDistractionOptimization="false" car:uxr="baseline"/>
<Restrictions car:requiresDistractionOptimization="true" car:uxr="no_video"/>
</DrivingState>
</Restrictions>setRestrictionMode(@NonNull String mode) পদ্ধতি। (পূর্বে, আপনি CarUxRestrictionsManager-এ setRestrictionMode(@CarUxRestrictionsManager.UxRestrictionMode int mode) পদ্ধতি ব্যবহার করতেন)।CarUxRestrictionsConfiguration API গুলি
CarUx-এর সাথে বিধিনিষেধসমূহকনফিগারেশন
নতুন ক্লাস CarUxRestrictionsConfiguration বর্তমান XML কনফিগারেশন স্কিমার সাথে 1:1 ম্যাপ করা হয়েছে। CarUxRestrictionsConfiguration CarUxRestrictions. Builder দিয়ে তৈরি করা যেতে পারে, যা build() এর সময় কনফিগারেশন যাচাই করে।
new CarUxRestrictionsConfiguration.Builder()
// Explicitly set restrictions for each driving state.
.setUxRestrictions(CarDrivingStateEvent.DRIVING_STATE_PARKED,
/* requiresOptimization= */ false,
/* restrictions= */ UX_RESTRICTIONS_BASELINE)
.setUxRestrictions(CarDrivingStateEvent.DRIVING_STATE_IDLING,
true,
UX_RESTRICTIONS_NO_VIDEO|UX_RESTRICTIONS_NO_SETUP)
.setUxRestrictions(CarDrivingStateEvent.DRIVING_STATE_MOVING,
true,
UX_RESTRICTIONS_FULLY_RESTRICTED)
// Set restriction parameters.
.setMaxStringLength(int max)
.setMaxCumulativeContentItems(int max)
.setMaxContentDepth(int max)
// Build a new CarUxRestrictionsConfiguration.
.build();CarUxRestrictionsManager API
CarUxRestrictionsManager ব্যবহার করে পরবর্তী ড্রাইভের জন্য CarUxRestrictionsConfiguration সেট করুন। এই পদ্ধতির জন্য অনুমতি প্রয়োজন, Car.PERMISSION_CAR_UX_RESTRICTIONS_CONFIGURATION ।
public synchronized boolean saveUxRestrictionsConfigurationForNextBoot(
CarUxRestrictionsConfiguration config);একটি নতুন UX সীমাবদ্ধতা কনফিগারেশন বজায় রাখুন
যখন একটি নতুন কনফিগারেশন পাস করা হয়, তখন UX Restrictions পরিষেবা একটি বুলিয়ান ফেরত দেয় যা নির্দেশ করে যে নতুন কনফিগারেশনটি সফলভাবে সংরক্ষণ করা হয়েছে কিনা। এই নতুন কনফিগারেশনটি কেবল তখনই ব্যবহৃত হয় যখন ইন্টিগ্রেটেড হেড ইউনিট (IHU) পুনরায় চালু হয় এবং গাড়িটি পার্ক করা হয়। অভ্যন্তরীণভাবে, UX Restrictions পরিষেবাটিতে দুটি সেট কনফিগারেশন রয়েছে:
- উৎপাদন। ঐচ্ছিক হলেও, এই কনফিগারেশনটি প্রায়শই উপস্থিত থাকে। UX সীমাবদ্ধতা পরিষেবা শুরু করার সময় এই কনফিগারেশনটি পড়ে।
- পর্যায়ক্রমে। ঐচ্ছিক, এই কনফিগারেশনটি UX বিধিনিষেধের উপর কোনও প্রভাব ফেলে না এবং গাড়ি পরিষেবা শুরু হলে এবং গাড়ি পার্ক করা হলে এটি প্রোডাকশনে উন্নীত হয়।

চিত্র ১. উৎপাদন কনফিগারেশন
ঠিকানা ব্যর্থতা
CarPropertyManager থেকে ড্রাইভিং অবস্থা সম্পর্কিত তথ্য না পাওয়া পর্যন্ত (উদাহরণস্বরূপ, বুট-আপের সময়), UX বিধিনিষেধ কার্যকর করা হবে না। সিস্টেমটি ড্রাইভিং অবস্থা পার্ক করা অবস্থায় থাকা অবস্থায় কাজ করে।
যদি কোনও সংরক্ষিত কনফিগারেশন পড়া ব্যর্থ হয় (উদাহরণস্বরূপ, SettingNotFoundException ফলাফল), UX সীমাবদ্ধতা পরিষেবাটি হার্ড-কোডেড, সম্পূর্ণরূপে সীমাবদ্ধ মোডে ফিরে আসে:
// Idling/moving state is fully restricted. private static CarUxRestrictionsConfiguration generateDefaultConfig() {}
ড্রাইভিং অবস্থা এবং ব্যবহারকারীর বিধিনিষেধ
নিম্নলিখিত বিষয়বস্তু নিম্নলিখিত নকশা চিত্রে প্রদর্শিত মিথস্ক্রিয়া বর্ণনা করে:

চিত্র ২. ড্রাইভিং অবস্থা মিথস্ক্রিয়া
ড্রাইভিং অবস্থা বের করতে ব্যবহৃত বৈশিষ্ট্য
ড্রাইভিং অবস্থা বের করতে নিম্নলিখিত তিনটি VehiclePropertyIds ব্যবহার করুন:
অ্যাপগুলিতে উপলব্ধ API গুলি
কোডটি নিম্নলিখিত স্থানে থাকে:
| কোড | স্থান |
|---|---|
CarUxRestrictionsManagerUX সীমাবদ্ধতা পরিবর্তনের জন্য নিবন্ধনের জন্য পাবলিক API গুলি। | /packages/services/Car/+/android16-qpr1-release/car-lib/src/android/car/drivingstate/CarDrivingStateManager.java |
CarUxRestrictionsUX সীমাবদ্ধতার সংজ্ঞা। | /packages/services/Car/+/android16-qpr1-release/car-lib/src/android/car/drivingstate/CarDrivingStateManager.java |
CarDrivingStateManagerড্রাইভিং অবস্থা পরিবর্তনের জন্য নিবন্ধন করার জন্য সিস্টেম API। | /packages/services/Car/+/android16-qpr1-release/car-lib/src/android/car/drivingstate/CarDrivingStateManager.java |
ড্রাইভিং অবস্থা অনুকরণ করতে, পরীক্ষা দেখুন।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-11-12 UTC-তে শেষবার আপডেট করা হয়েছে।