সময় ওভারভিউ

এই পৃষ্ঠাটি বর্ণনা করে কিভাবে সময় এবং সময় অঞ্চল সনাক্তকরণ Android এ কাজ করে। এতে Android কীভাবে স্বয়ংক্রিয়ভাবে সময় এবং সময় অঞ্চল সনাক্ত করে, ডিভাইস নির্মাতাদের জন্য কনফিগারেশন বিকল্প এবং পরীক্ষার তথ্য অন্তর্ভুক্ত করে।

সময় এবং সময় অঞ্চলের ওভারভিউ

স্ট্যাটাস বারের মতো অবস্থানে প্রদর্শনের জন্য ব্যবহারকারীর স্থানীয় সময় নির্ধারণ করতে, Android দুটি সম্পর্কিত কিন্তু স্বাধীন অবস্থার ট্র্যাক রাখে:

  • বর্তমান ইউনিক্স যুগের সময়
  • বর্তমান সময় অঞ্চল

বর্তমান ইউনিক্স যুগের সময় এবং বর্তমান টাইম জোন হল ডিভাইস-ওয়াইড স্টেট, যার অর্থ হল সেগুলি একটি ডিভাইসের সমস্ত ব্যবহারকারীদের দ্বারা শেয়ার করা হয়।

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

বর্তমান সময় অঞ্চল বর্তমান ইউনিক্স যুগের সময়কে স্থানীয় সময়ে রূপান্তর করার জন্য সামঞ্জস্য নির্ধারণ করে। উদাহরণস্বরূপ, লস অ্যাঞ্জেলেসে গ্রীষ্মকালে, ডিভাইসটি বর্তমান ইউনিক্স যুগের সময় থেকে 7 ঘন্টা বিয়োগ করে এবং শীতকালে এটি 8 ঘন্টা বিয়োগ করে।

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

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

AOSP ব্যবহারকারীদের নিম্নলিখিত প্রক্রিয়াগুলির মাধ্যমে স্বয়ংক্রিয়ভাবে সময় এবং সময় অঞ্চল তাদের জন্য সেট করা হয়েছে কিনা তা স্বাধীনভাবে নিয়ন্ত্রণ করতে দেয়।

  • স্বয়ংক্রিয় সময় সনাক্তকরণ: ডিভাইসটিতে সঠিক বর্তমান ইউনিক্স যুগের সময় রয়েছে তা নিশ্চিত করে।
  • স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ: ডিভাইসে সঠিক বর্তমান সময় অঞ্চল রয়েছে তা নিশ্চিত করে।

স্বয়ংক্রিয় সময় সনাক্তকরণ

এই বিভাগটি time_detector পরিষেবার একটি ওভারভিউ প্রদান করে যা স্বয়ংক্রিয় সময় সনাক্তকরণ, ব্যবহারকারী নিয়ন্ত্রণ, কনফিগারেশন বিকল্প এবং পরীক্ষার বিবরণ পরিচালনা করে।

সময়_ডিটেক্টর পরিষেবা

time_detector পরিষেবা, Android 10 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে উপস্থিত, স্বয়ংক্রিয় সময় সনাক্তকরণ পরিচালনা করে। স্বয়ংক্রিয় সময় সনাক্তকরণ সক্ষম হলে এটি প্রয়োজন অনুসারে ডিভাইসের বর্তমান ইউনিক্স যুগের সময়কে সামঞ্জস্য করে।

time_detector পরিষেবা সর্বদা দুটি অবস্থার একটিতে থাকে: অনিশ্চিত বা নির্দিষ্ট । পরিষেবার নির্দিষ্ট বা অনিশ্চিত অবস্থা বিভিন্ন উত্স থেকে প্রাপ্ত সময়ের পরামর্শ দ্বারা নির্ধারিত হয়।

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

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

বর্তমান ইউনিক্স যুগের সময় স্বয়ংক্রিয়ভাবে প্রতিষ্ঠা করতে, একটি ডিভাইসের বিভিন্ন উত্স রয়েছে যা এটি ব্যবহার করতে পারে। এই নথিতে এগুলোকে বলা হয় অরিজিনtime_detector পরিষেবা পরামর্শের ক্রমগুলিকে তাদের উত্সের উপর ভিত্তি করে স্বতন্ত্র হিসাবে বিবেচনা করে।

time_detector পরিষেবাটি স্টেটফুল, যার মানে এটি প্রতিটি উত্সের দ্বারা করা সাম্প্রতিকতম পরামর্শের রেকর্ড রাখে৷ নতুন পরামর্শ দেওয়া হয় time_detector এর কাছে যদি কোনো অরিজিনে সাম্প্রতিক ইউনিক্স যুগের সময়ের তথ্য পাওয়া যায়। time_detector পরিষেবা নতুন এবং বিদ্যমান পরামর্শগুলিকে পুনরায় মূল্যায়ন করে এবং পরামর্শগুলি প্রাপ্ত হলে ডিভাইসের অবস্থা আপডেট করে।

যদিও ইউটিসি সময় আন্তর্জাতিকভাবে একমত, তবে বিভিন্ন কারণ রয়েছে যে কেন বর্তমান ইউনিক্স যুগের সময়টি একটি অ্যান্ড্রয়েড ডিভাইসের জন্য সর্বদা সহজবোধ্য নয়:

  • ইউনিক্স যুগের সময় হল ইউটিসি সময়ের থেকে একটি সূক্ষ্মভাবে ভিন্ন সময় রক্ষার ব্যবস্থা। উভয়ের মধ্যে রূপান্তর করার জন্য কখন লিপ সেকেন্ড ঘটে এবং কীভাবে সেগুলি উৎপত্তি দ্বারা পরিচালনা করা হয় সে সম্পর্কে জ্ঞান প্রয়োজন।
  • উৎপত্তি শুধুমাত্র নির্দিষ্ট সময়ে বা নির্দিষ্ট পরিস্থিতিতে উপলব্ধ হতে পারে। উদাহরণস্বরূপ, যদি মূলটির জন্য নেটওয়ার্ক সংযোগের প্রয়োজন হয়, তবে ডিভাইসটি ইন্টারনেটের সাথে সংযুক্ত থাকাকালীনই এটি উপলব্ধ হতে পারে।
  • উত্সগুলি ভুল বা অশুদ্ধ হতে পারে বা ত্রুটি থাকতে পারে৷ উদাহরণস্বরূপ, যদি একটি টেলিফোনি সেল টাওয়ার সঠিকভাবে "সর্বজনীন সময়" ট্র্যাক না করে, তাহলে টেলিফোনির উৎস ভুল সময়ের পরামর্শ প্রদান করতে পারে।
  • ইউনিক্স যুগের সময় পাওয়ার সময় ভুলত্রুটি চালু হতে পারে। উদাহরণস্বরূপ, একটি নেটওয়ার্ক বিলম্ব, বাফারিং বা প্রক্রিয়া নির্ধারণের কারণে ইউনিক্স যুগের সময় ভুল হতে পারে।
  • প্রস্তাবনা পাওয়ার পর থেকে অতিবাহিত সময়ের জন্য একটি পরামর্শ সামঞ্জস্য করতে ব্যবহৃত রেফারেন্স ঘড়িটি ভুল হতে পারে।

AOSP-তে ডিফল্টরূপে ব্যবহারের জন্য দুটি প্রধান সময় সনাক্তকরণের উৎস কনফিগার করা আছে:

  • নেটওয়ার্ক : নেটওয়ার্ক টাইম প্রোটোকল (এনটিপি) টাইম সার্ভার ব্যবহার করে।
  • টেলিফোনি: নেটওয়ার্ক আইডেন্টিটি এবং টাইম জোন (NITZ) টেলিফোনি সংকেত ব্যবহার করে।

টেলিফোনি এবং নেটওয়ার্ক উৎপত্তি উভয়ের জন্যই বাহ্যিক নেটওয়ার্কের সাথে সংযোগ প্রয়োজন, যা সবসময় পাওয়া যায় না।

অ্যান্ড্রয়েড 12 দিয়ে শুরু করে, অ্যান্ড্রয়েড নিম্নলিখিত উত্সগুলিকে সমর্থন করে, যা ডিফল্টরূপে ব্যবহারের জন্য কনফিগার করা হয় না:

  • GNSS : একটি GNSS উৎস থেকে একটি সময় পেতে GPS অবস্থান প্রদানকারী ব্যবহার করে।
  • বাহ্যিক : জেনেরিক উত্স যা ডিভাইস নির্মাতাদের তাদের ইউনিক্স যুগের সময়ের নিজস্ব উত্স একত্রিত করতে দেয়।

সময় সেটিংস

ব্যবহারকারীরা AOSP সেটিংস অ্যাপে সিস্টেম > তারিখ এবং সময় স্বয়ংক্রিয় সময় সনাক্তকরণ সক্ষম করতে পারেন।

সেটিংসে স্বয়ংক্রিয় সময় সনাক্তকরণ

চিত্র 1. সেটিংসে স্বয়ংক্রিয় সময় সনাক্তকরণ।

নিম্নলিখিত সারণীটি AOSP সেটিংস অ্যাপে সময় সনাক্তকরণের জন্য ব্যবহারকারীর নিয়ন্ত্রণগুলি বর্ণনা করে৷

*Android 11 এবং তার নিচের সংস্করণগুলিতে, এই সেটিংটি নেটওয়ার্ক-প্রদত্ত সময় ব্যবহার করুন লেবেলযুক্ত

AOSP সেটিংস অবস্থান AOSP সেটিংস নাম ব্যাপ্তি আচরণ
সিস্টেম > তারিখ এবং সময় স্বয়ংক্রিয়ভাবে সময় সেট করুন* সমস্ত ব্যবহারকারী

একটি টগল।

যখন চালু থাকে , ডিভাইসটি বর্তমান ইউনিক্স যুগের সময় সনাক্ত করার জন্য দায়ী। বন্ধ থাকলে, ব্যবহারকারীদের ডিভাইসের সময় ম্যানুয়ালি সেট করার জন্য নিয়ন্ত্রণ প্রদান করা হয়।

ব্যবহারকারী যখন ম্যানুয়ালি সময় প্রবেশ করে, তখন তারা তাদের স্থানীয় সময় প্রবেশ করে, ইউনিক্স যুগের সময় নয়। বর্তমান ইউনিক্স যুগের সময় একটি ইউনিক্স যুগের সময় বের করতে বর্তমান সময় অঞ্চল ব্যবহার করে গণনা করা হয়।

কনফিগারেশন

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

মূল অগ্রাধিকার

Android 12 থেকে, ডিভাইস নির্মাতারা core/res/res/values/config.xml কনফিগারেশন ফাইলটি পরিবর্তন করতে পারে যাতে স্বয়ংক্রিয় সময় সনাক্তকরণে কোন সময়টি অন্তর্ভুক্ত করতে হবে এবং কোন অগ্রাধিকারে time_detector এই উত্সগুলি বিবেচনা করে।

Android 11 বা তার নিচের সংস্করণে চলমান ডিভাইসগুলির জন্য, অরিজিন অগ্রাধিকারটি ["telephony", "network"] -এ হার্ডকোড করা হয়, যার অর্থ হল যে টেলিফোনি পরামর্শগুলি নেটওয়ার্ক পরামর্শের উপরে অগ্রাধিকার দেওয়া হয়।

ডিফল্ট AOSP কনফিগারেশন নিম্নরূপ:

<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list
     take precedence over lower ones.
     See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
<string-array name="config_autoTimeSourcesPriority">
    <item>network</item>
    <item>telephony</item>
</string-array>

অ্যান্ড্রয়েড 12-এ, নেটওয়ার্ক এবং টেলিফোনি পরামর্শগুলি ডিফল্টরূপে ব্যবহারের জন্য উত্স হিসাবে কনফিগার করা হয়। নেটওয়ার্ক সময়ের পরামর্শগুলি টেলিফোনি সময়ের পরামর্শের উপরে অগ্রাধিকার দেওয়া হয়। ডিভাইস নির্মাতারা Android 11 বা তার নিচের আচরণে প্রত্যাবর্তনের জন্য উৎপত্তির ক্রম পরিবর্তন করতে পারে, যেখানে টেলিফোনিকে উচ্চ অগ্রাধিকার দেওয়া হয়।

ডিফল্টরূপে, যদি সর্বোচ্চ অগ্রাধিকারের বৈধ পরামর্শটি ডিভাইসের বর্তমান সিস্টেম ঘড়ির সময়ের সাথে কয়েক সেকেন্ডের মধ্যে মিলে যায়, তাহলে ডিভাইসের সময় পরিবর্তন করা হবে না । এটি ACTION_TIME_CHANGED অভিপ্রায় শোনার জন্য ইনস্টল করা অ্যাপগুলির জন্য কাজ তৈরি করা এড়াতে।

অনুমোদিত মূল মান হল:

অনুমোদিত সময়সীমা

অ্যান্ড্রয়েড 14 time_detector পরিষেবা দ্বারা প্রাপ্ত সময়ের পরামর্শের জন্য একটি উচ্চ সময়সীমা প্রবর্তন করে। ডিভাইসটি 32-বিট প্রসেস সমর্থন করলে, ফ্রেমওয়ার্কটি ডিভাইসটিকে এমন একটি সময়ের পরামর্শ ব্যবহার করা থেকে বিরত রাখতে একটি উচ্চ সময়সীমা সেট করে যা Y2038 সমস্যাটি ট্রিগার করতে পারে।

অ্যান্ড্রয়েড 12 একটি কম সময়সীমা প্রবর্তন করেছে যা time_detector পরিষেবা দ্বারা প্রাপ্ত সময়ের পরামর্শ যাচাই করতে ব্যবহৃত হয়। স্বয়ংক্রিয় পরামর্শের জন্য ব্যবহৃত নিম্ন সময়সীমা মান বিল্ড টাইমস্ট্যাম্প থেকে সেট করা হয়। এটি এই নীতিতে কাজ করে যে ডিভাইসের সিস্টেম চিত্র তৈরি হওয়ার আগে একটি বৈধ সময় হতে পারে না। যদি একটি টাইম সাজেশন নিম্ন টাইম বাউন্ডের আগে হয়, time_detector পরিষেবা পরামর্শটিকে বাতিল করে দেয় কারণ বিল্ড টাইমস্ট্যাম্প সঠিক হলে এটি বৈধ হতে পারে না।

অ্যান্ড্রয়েড 11 বা তার কম সংস্করণে চলমান ডিভাইসগুলির জন্য, time_detector পরিষেবাটি ইনকামিং ইউনিক্স যুগের সময় পরামর্শগুলিকে যাচাই করে না।

সময় ডিবাগিং এবং পরীক্ষা

এই বিভাগটি time_detector পরিষেবা এবং সমস্ত উত্স দ্বারা ভাগ করা অন্যান্য উপাদানগুলির আচরণ ডিবাগ এবং পরীক্ষা করার বিষয়ে তথ্য সরবরাহ করে।

টাইম_ডিটেক্টর পরিষেবার সাথে যোগাযোগ করুন

time_detector পরিষেবার কনফিগারেশন এবং time_detector পরিষেবার অবস্থা দেখতে, ব্যবহার করুন:

adb shell cmd time_detector dump

ডিবাগিং এবং টাইম জোন সনাক্তকরণ পরীক্ষা করার জন্য অতিরিক্ত কমান্ড দেখতে, ব্যবহার করুন:

adb shell cmd time_detector help

সাহায্য আউটপুট ডিভাইস_কনফিগ পরিষেবা বৈশিষ্ট্যগুলিকেও বর্ণনা করে যা পরীক্ষার জন্য বা উত্পাদনের জন্য time_detector এর আচরণকে প্রভাবিত করতে ব্যবহার করা যেতে পারে। বিস্তারিত জানার জন্য, device_config পরিষেবা ব্যবহার করে একটি ডিভাইস কনফিগার করা দেখুন।

স্বয়ংক্রিয় সময় সনাক্তকরণ যাচাই করার জন্য, পরীক্ষকদের অবশ্যই সচেতন হতে হবে যে time_detector পরিষেবাটি কোন উৎস ব্যবহার করছে। নিম্নে adb shell cmd time_detector dump কমান্ড থেকে আউটপুটের একটি উদাহরণ, যেখানে বর্তমান উৎপত্তি এবং পরিষেবা অবস্থা সম্পর্কে তথ্য মোটা অক্ষরে রয়েছে:

$ adb shell cmd time_detector dump

TimeDetectorStrategy:
  mLastAutoSystemClockTimeSet=null
  mEnvironment.isAutoTimeDetectionEnabled()=true
  mEnvironment.elapsedRealtimeMillis()=23717241
  mEnvironment.systemClockMillis()=1626707861336
  mEnvironment.systemClockUpdateThresholdMillis()=2000
  mEnvironment.autoTimeLowerBound()=2021-07-19T07:48:05Z(1626680885000)
  mEnvironment.autoOriginPriorities()=[network,telephony]
  Time change log:
    ...
  Telephony suggestion history:
    ...
  Network suggestion history:
    ...
  Gnss suggestion history:
    ...
  External suggestion history:
    ...

তথ্য নিম্নরূপ ব্যাখ্যা করা যেতে পারে:

চাবি মান
mEnvironment.isAutoTimeDetectionEnabled() স্বয়ংক্রিয় সময় সনাক্তকরণ সক্ষম কিনা।
mEnvironment.autoTimeLowerBound() বর্তমান নিম্ন সীমা সময় পরামর্শ যাচাই করতে ব্যবহৃত.
mEnvironment.autoOriginPriorities() ব্যবহারে উৎপত্তি এবং অগ্রাধিকার ক্রম।

সময় পরিবর্তন লগ এমন ঘটনাগুলি নির্দেশ করে যখন time_detector পরিষেবা ডিভাইসের বর্তমান ইউনিক্স যুগের সময় পরিবর্তন করেছে।

পরামর্শের ইতিহাসের তথ্য নির্দেশ করে যে প্রতিটি উত্স দ্বারা কী পরামর্শ দেওয়া হয়েছে৷

স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ

এই বিভাগটি time_zone_detector পরিষেবার একটি ওভারভিউ প্রদান করে যা স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ, সেটিংসে ব্যবহারকারীর নিয়ন্ত্রণ, টেলিফোনি এবং অবস্থানের সময় অঞ্চল সনাক্তকরণ এবং পরীক্ষার বিবরণ পরিচালনা করে।

টাইম_জোন_ডিটেক্টর পরিষেবা

time_zone_detector পরিষেবা, Android 11 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে উপস্থিত, স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ পরিচালনা করে। স্বয়ংক্রিয় টাইম জোন সনাক্তকরণ সক্ষম হলে এটি প্রয়োজন অনুসারে ডিভাইসের বর্তমান সময় অঞ্চলকে সামঞ্জস্য করে।

যখন স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ সক্ষম করা হয়, time_zone_detector দুটি অবস্থার একটিতে থাকতে পারে: অনিশ্চিত এবং নির্দিষ্ট

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

time_zone_detector পরিষেবার নির্দিষ্ট রাজ্যগুলি এমনগুলিকে অন্তর্ভুক্ত করতে পারে যেখানে time_zone_detector ব্যবহার করার জন্য কোনও সময় অঞ্চলের তথ্য নেই বা যেখানে এটির মধ্যে বেছে নেওয়ার জন্য একাধিক সময় অঞ্চল রয়েছে৷ এই রাজ্যগুলি নিম্নরূপ:

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

time_zone_detector পরিষেবার নির্দিষ্ট বা অনিশ্চিত অবস্থা একটি অ্যালগরিদম দ্বারা প্রেরিত সময় অঞ্চল পরামর্শ দ্বারা নির্ধারিত হয়।

সাধারণত, প্রস্তাবনা দুটি প্রকারে আসে যা time_zone_detector এর সম্ভাব্য অবস্থার সাথে ঘনিষ্ঠভাবে মেলে: নির্দিষ্ট এবং অনিশ্চিত । নিম্নলিখিত ধরণের পরামর্শের উদাহরণ রয়েছে:

  • প্রকার = uncertain , zoneIds = []

    • অ্যালগরিদম টাইম জোন কী তা জানে না।
  • প্রকার = certain , zoneIds = ["Europe/London"]

    • অ্যালগরিদম নিশ্চিত যে অঞ্চলটি ইউরোপ/লন্ডন।
  • প্রকার = certain , zoneIds = [] `

    • অ্যালগরিদম নিশ্চিত, কিন্তু বর্তমান অবস্থানের সাথে কোনো জোন আইডি যুক্ত নেই।
  • type = certain , zoneIds = ["America/Denver", "America/Phoenix"]

    • অ্যালগরিদম নিশ্চিত যে উত্তরটি দুটি অঞ্চলের একটি, কিন্তু "আমেরিকা/ডেনভার" এবং "আমেরিকা/ফিনিক্স" এর মধ্যে বেছে নিতে পারে না।

time_zone_detector পরিষেবা পরামর্শের ক্রমগুলিকে তাদের অ্যালগরিদমের উপর ভিত্তি করে স্বতন্ত্র হিসাবে বিবেচনা করে। অ্যালগরিদমের উপর নির্ভর করে, পরামর্শগুলিতে মেটাডেটাও থাকতে পারে যা নির্দেশ করে যে অ্যালগরিদম কতটা নিশ্চিত৷

time_zone_detector পরিষেবাটি স্টেটফুল, যার মানে এটি প্রতিটি অ্যালগরিদম দ্বারা করা সাম্প্রতিকতম পরামর্শের রেকর্ড রাখে। পূর্ববর্তী পরামর্শ আর সঠিক না হলে নতুন পরামর্শ time_zone_detector পরিষেবাতে পাঠানো হয়; অর্থাৎ, যদি একটি অ্যালগরিদমের এখন একটি ভিন্ন পরামর্শ থাকে, অথবা যদি এটি সময় অঞ্চল সনাক্ত করার ক্ষমতা হারিয়ে ফেলে। time_zone_detector পরিষেবা নতুন এবং বিদ্যমান পরামর্শগুলিকে পুনঃমূল্যায়ন করে এবং পরামর্শ প্রাপ্ত হলে ডিভাইসের অবস্থা আপডেট করে।

সময় অঞ্চল সনাক্তকরণের জন্য অ্যান্ড্রয়েড দুটি অ্যালগরিদম সমর্থন করে:

  • টেলিফোনি
  • অবস্থান

time_zone_detector পরিষেবা সাধারণত সময় অঞ্চল নির্ধারণ করতে একটি একক অ্যালগরিদম ব্যবহার করে। যখন একটি ডিভাইসে অবস্থান অ্যালগরিদম সমর্থিত হয়, তখন ডিভাইসটি যে অ্যালগরিদম ব্যবহার করে তা ব্যবহারকারীর দ্বারা কনফিগার করা টাইম জোন সেটিংসের উপর ভিত্তি করে নির্ধারিত হয়। যখন ব্যবহার করা অ্যালগরিদম সময় অঞ্চল সম্পর্কে অনিশ্চিত হয়ে পড়ে, তখন time_zone_detector সাধারণত ভিন্ন অ্যালগরিদমের পরামর্শ ব্যবহার করে না। অ্যালগরিদমগুলির সাথে যুক্ত পরামর্শগুলি যেগুলি ব্যবহার করা হয় না সেগুলি time_zone_detector দ্বারা মেমরিতে রাখা যেতে পারে, কিন্তু অ্যালগরিদম পরিবর্তন না হওয়া পর্যন্ত সেগুলি ব্যবহার করা হয় না৷ যখন ব্যবহারকারী স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণের জন্য সেটিংস পরিবর্তন করে এবং অ্যালগরিদম পরিবর্তন করে, তখন নতুন অ্যালগরিদমের জন্য উপলব্ধ সবচেয়ে সাম্প্রতিক পরামর্শ ব্যবহার করা হয়।

পরিস্থিতি সম্পর্কে বিশদ বিবরণের জন্য যেখানে সময় অঞ্চল নির্ধারণ করতে একাধিক অ্যালগরিদম ব্যবহার করা হয়, টেলিফোনি ফলব্যাক মোড দেখুন।

টেলিফোনি ফলব্যাক মোড

Android 13 এবং উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে, time_zone_detector পরিষেবা টেলিফোনি ফলব্যাক মোড সমর্থন করে৷ এই মোডটি Android-কে অস্থায়ীভাবে টেলিফোনি সনাক্তকরণের পরামর্শগুলি ব্যবহার করতে দেয় যেখানে অবস্থান সনাক্তকরণ সময় অঞ্চল সনাক্ত করতে অক্ষম হয় বা যেখানে টেলিফোনি সনাক্তকরণের চেয়ে লোকেশন সনাক্তকরণ সময় অঞ্চল সনাক্ত করতে বেশি সময় নেয়।

টেলিফোনি ফলব্যাক মোড সেই ডিভাইসগুলিতে প্রযোজ্য যেখানে টেলিফোনি এবং অবস্থান সনাক্তকরণ উভয়ই সমর্থিত, এবং যেখানে ব্যবহারকারী টাইম জোন সেটিংসে সময় অঞ্চল সেট করতে অবস্থান ব্যবহার করুন সক্ষম করেছেন৷ যখন একটি ডিভাইস পুনরায় বুট করা হয় এবং যখন বিমান মোড অক্ষম করা হয় তখন মোডটি স্বয়ংক্রিয়ভাবে সক্ষম হয়৷

অ্যান্ড্রয়েড 14 এবং উচ্চতর, LTZP স্ট্যাটাস রিপোর্টিং API-এর মাধ্যমে টেলিফোনি ফলব্যাক ট্রিগার করা যেতে পারে, অর্থাৎ, যদি কোনও LTZP রিপোর্ট করে যে এটি অনিশ্চিত এবং অবস্থান বা সময় অঞ্চল সনাক্ত করার ক্ষমতা তার পরিবেশ দ্বারা অবনমিত হয়, টেলিফোনি ফলব্যাক মোড ট্রিগার হয়।

যখন টেলিফোনি ফলব্যাক মোডে, time_zone_detector পরিষেবা টেলিফোনি পরামর্শ ব্যবহার করে যেন অবস্থান সনাক্তকরণ অক্ষম থাকে যতক্ষণ না অবস্থান অ্যালগরিদম একটি নির্দিষ্ট পরামর্শ দেয়। একটি নির্দিষ্ট পরামর্শ পাওয়ার পরে, টেলিফোনি ফলব্যাক মোড অক্ষম করা হয় এবং অবস্থানের পরামর্শগুলি একচেটিয়াভাবে ব্যবহার করা হয়৷

টেলিফোনি ফলব্যাক মোডের কনফিগারেশনের বিশদ বিবরণের জন্য, টাইম জোন সনাক্তকরণ কনফিগারেশন দেখুন।

সময় অঞ্চল সেটিংস

ব্যবহারকারীরা AOSP সেটিংস অ্যাপে স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণের জন্য সেটিংস সক্ষম এবং কনফিগার করতে পারেন।

সেটিংসে স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ

চিত্র 2. সেটিংসে স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ।

নিম্নলিখিত টেবিলটি AOSP সেটিংস অ্যাপে সময় অঞ্চল সনাক্তকরণের জন্য ব্যবহারকারীর নিয়ন্ত্রণগুলি বর্ণনা করে৷

*Android 11 এবং তার পরবর্তী সংস্করণে, এই সেটিংটি নেটওয়ার্ক-প্রদত্ত সময় অঞ্চল ব্যবহার করুন লেবেলযুক্ত

AOSP সেটিংস অবস্থান AOSP সেটিংস নাম ব্যাপ্তি আচরণ
সিস্টেম > তারিখ এবং সময় স্বয়ংক্রিয়ভাবে সময় অঞ্চল সেট করুন* সমস্ত ব্যবহারকারী

একটি টগল।

যখন চালু থাকে , ডিভাইসটি বর্তমান সময় অঞ্চল সনাক্ত করার জন্য দায়ী৷ বন্ধ থাকা অবস্থায়, ব্যবহারকারীদের ডিভাইসের সময় অঞ্চল ম্যানুয়ালি সেট করার জন্য নিয়ন্ত্রণ প্রদান করা হয়।

সিস্টেম > তারিখ এবং সময় সময় অঞ্চল সেট করতে অবস্থান ব্যবহার করুন বর্তমান ব্যবহারকারী

একটি টগল।

Android 12 থেকে উপলব্ধ। ডিভাইসে অবস্থানের সময় অঞ্চল সনাক্তকরণ সমর্থিত হলেই এই টগলটি প্রদর্শিত হয়।

Android 14-এ প্রবর্তিত পরিবর্তনগুলির জন্য, শুধুমাত্র অবস্থানের সময় অঞ্চল সনাক্তকরণ সমর্থন করে এমন ডিভাইসগুলি দেখুন৷

অবস্থান অবস্থান ব্যবহার করুন বর্তমান ব্যবহারকারী

একটি টগল।

সাধারণত ডিভাইসের অবস্থান ব্যবহারের অনুমতি দেয় বা প্রতিরোধ করে। ডিভাইসে অবস্থানের সময় অঞ্চল সনাক্তকরণ সমর্থিত হলে মানটি প্রাসঙ্গিক।

ব্যবহারকারীর দ্বারা নির্বাচিত সেটিংস প্রদত্ত সময় অঞ্চল সনাক্তকরণের জন্য নিম্নলিখিতটি ডিভাইসের আচরণের একটি ওভারভিউ প্রদান করে:

  • [তারিখ এবং সময়] স্বয়ংক্রিয়ভাবে সময় অঞ্চল সেট করুন: বন্ধ

    • ব্যবহারকারীকে ম্যানুয়ালি টাইম জোন নির্বাচন করতে হবে।
  • [তারিখ এবং সময়] স্বয়ংক্রিয়ভাবে সময় অঞ্চল সেট করুন: চালু

    • [অবস্থান] অবস্থান ব্যবহার করুন: বন্ধ

      • টেলিফোনি সংকেত টাইম জোন সনাক্ত করতে ব্যবহৃত হয়।
    • [অবস্থান] অবস্থান ব্যবহার করুন: চালু

      • [তারিখ এবং সময়] সময় অঞ্চল সেট করতে অবস্থান ব্যবহার করুন: চালু

        • সময় অঞ্চল সনাক্ত করতে অবস্থান ব্যবহার করা হয়।
      • [তারিখ এবং সময়] সময় অঞ্চল সেট করতে অবস্থান ব্যবহার করুন: বন্ধ

        • টেলিফোনি সংকেত টাইম জোন সনাক্ত করতে ব্যবহৃত হয়।

একাধিক ব্যবহারকারী ডিভাইস

যেহেতু জড়িত বেশ কয়েকটি সেটিংস বর্তমান ব্যবহারকারীর জন্য স্কোপ করা হয়েছে, একটি ডিভাইসের সময় অঞ্চল সনাক্তকরণ আচরণ পরিবর্তন হতে পারে যখন বর্তমান ব্যবহারকারী একটি বহু-ব্যবহারকারী Android ডিভাইসে পরিবর্তিত হয়।

টাইম জোন টগল সেট করার জন্য অবস্থান ব্যবহার করুন বর্তমান ব্যবহারকারীর জন্য স্কোপড এবং ডিভাইস নীতি দ্বারা সীমাবদ্ধ নয়, যার অর্থ ব্যবহারকারীরা সর্বদা এর মান পরিবর্তন করতে পারে, এমনকি যখন সেট টাইম জোন স্বয়ংক্রিয়ভাবে টগল বন্ধ থাকে বা অন্য সময় বা সময় অঞ্চল নিয়ন্ত্রণ করে ডিভাইস পলিসি কন্ট্রোলার দ্বারা সীমাবদ্ধ।

যে ডিভাইসগুলি শুধুমাত্র অবস্থানের সময় অঞ্চল সনাক্তকরণ অ্যালগরিদম সমর্থন করে৷

এই বিভাগে শুধুমাত্র অবস্থান অ্যালগরিদম সমর্থন করে এমন ডিভাইসের আচরণ বর্ণনা করে।

  • Android 14 এবং উচ্চতর

    • AOSP সেটিংস অ্যাপে ব্যবহারকারীদের অবস্থান ব্যবহার করুন বিকল্পটি দেখানো হয় না এবং ডিভাইসটি এমনভাবে আচরণ করে যেন অবস্থান ব্যবহার করুন বিকল্পটি সক্ষম করা আছে।
    • ব্যবহারকারী-স্কোপযুক্ত SettingsProvider সেটিং location_time_zone_detection_enabled এর মান উপেক্ষা করা হয়েছে। এই মান অন্যান্য ধরনের ডিভাইসে ব্যবহারকারীর পছন্দ রেকর্ড করে।
  • Android 12 বা Android 13

    • লোকেশন ব্যবহার করার বিকল্পটি AOSP সেটিংস অ্যাপে ব্যবহারকারীদের কাছে দৃশ্যমান এবং ব্যবহারকারীরা বিকল্পটি নিষ্ক্রিয় করতে পারেন। বিকল্পটি নিষ্ক্রিয় থাকলে, ডিভাইসটি স্বয়ংক্রিয়ভাবে সময় অঞ্চল সনাক্ত করবে না।

স্বয়ংক্রিয় সনাক্তকরণে এবং থেকে পরিবর্তন করার সময় আচরণ

যখন ব্যবহারকারী টাইম জোন সনাক্তকরণকে ম্যানুয়াল থেকে স্বয়ংক্রিয় তে স্যুইচ করেন, তখন time_zone_detector ইতিমধ্যেই বর্তমান সময় অঞ্চল সম্পর্কে নিশ্চিত হতে পারে। যদি তাই হয়, যেহেতু ব্যবহারকারী স্বয়ংক্রিয় সনাক্তকরণ সক্ষম করে, ডিভাইসের সময় অঞ্চল একই সময়ে পরিবর্তিত হতে পারে time_zone_detector পরিষেবার মতামতের সাথে মেলে৷

একইভাবে, ব্যবহারকারী যখন সেটিংসে একটি পরিবর্তন করেন যার ফলে time_zone_detector পরিষেবার বর্তমান অ্যালগরিদম পরিবর্তন হয়, time_zone_detector ইতিমধ্যেই নতুন অ্যালগরিদমের জন্য পরামর্শ পেয়ে থাকতে পারে এবং তাই ডিভাইসের সময় পরিবর্তন করা হতে পারে time_zone_detector পরিষেবার মতামতের সাথে মেলে।

টেলিফোনি টাইম জোন সনাক্তকরণ

টেলিফোনি টাইম জোন সনাক্তকরণ বর্তমান সময় অঞ্চল নির্ধারণ করতে টেলিফোনি সংকেত ব্যবহার করে। আরও তথ্যের জন্য, টেলিফোনি টাইম জোন সনাক্তকরণ দেখুন।

অবস্থান সময় অঞ্চল সনাক্তকরণ

অবস্থানের সময় অঞ্চল সনাক্তকরণ Android 12 বা উচ্চতর সংস্করণে উপলব্ধ। এটি একটি ঐচ্ছিক স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ বৈশিষ্ট্য যা ডিভাইসগুলিকে বর্তমান সময় অঞ্চল নির্ধারণ করতে তাদের অবস্থান ব্যবহার করতে সক্ষম করে।

Android 12-এ চালু করা location_time_zone_manager পরিষেবাটি সিস্টেম সার্ভারে চলে এবং time_zone_detector পরিষেবাতে অবস্থান অ্যালগরিদম পরামর্শ জমা দেওয়ার জন্য দায়ী কোডটি ধারণ করে। আরও তথ্যের জন্য, অবস্থান সময় অঞ্চল সনাক্তকরণ দেখুন।

বৈশিষ্ট্য গ্রহণ বিবেচনা

এই বিভাগটি একটি ডিভাইস নির্মাতাকে ডিভাইসে বৈশিষ্ট্যটি গ্রহণ করতে হবে কিনা তা নির্ধারণ করতে সাহায্য করার জন্য অবস্থানের সময় অঞ্চল সনাক্তকরণ বৈশিষ্ট্যের দিকগুলি বর্ণনা করে৷

টেলিফোনি এবং অবস্থান সনাক্তকরণ তুলনা করুন

নিম্নলিখিত সারণীটি সময় অঞ্চল সনাক্তকরণের জন্য টেলিফোনি সংকেতগুলির পরিবর্তে অবস্থান ব্যবহার করার সুবিধা এবং অসুবিধাগুলির একটি তুলনা প্রদান করে৷

টেলিফোনি সনাক্তকরণ অবস্থান সনাক্তকরণ
যথার্থতা দেশ অনুযায়ী পরিবর্তিত হয়।

MCC, NITZ সঠিকতা এবং প্রাপ্যতার উপর নির্ভর করে।
বৈশিষ্ট্য কনফিগারেশন বা প্লাগ-ইন উপাদানের উপর নির্ভর করে।

সঠিকতা সাধারণত এর দ্বারা পরিবর্তিত হয়:
  • অবস্থান প্রদানকারীর সঠিকতা এবং নিয়মিততা।
  • সময় অঞ্চল মানচিত্রের ডেটার গুণমান।
আপডেটযোগ্যতা টেলিফোনি সনাক্তকরণ আপডেটযোগ্য টাইম জোন ডেটা মডিউল (com.android.tzdata APEX) এর মধ্যে থাকা ফাইলগুলির উপর নির্ভর করে। বৈশিষ্ট্য কনফিগারেশন বা প্লাগ-ইন উপাদানের উপর নির্ভর করে।

আপডেটযোগ্যতা সাধারণত ডিভাইসটি সার্ভার বা ক্লায়েন্ট টাইম জোন ম্যাপ ডেটা ব্যবহার করে কিনা তার উপর নির্ভর করে।

দ্রষ্টব্য: টাইম জোন ম্যাপ ডেটা টাইম জোন ডেটা মডিউলে নেই যা Android-এর TZDB-এর কপি এবং অন্যান্য টাইম জোন তথ্য আপডেট করতে ব্যবহৃত হয়৷

ডিভাইস নির্মাতাদের অবশ্যই টাইম জোন নিয়ম এবং টাইম জোন ম্যাপ ডেটার মধ্যে সংস্করণের সামঞ্জস্যতা বিবেচনা করতে হবে।
পাওয়ার ব্যবহার কোনটি বা কম শক্তি ব্যবহার ব্যবহারকারীর অবস্থান সেটিংস, প্লাগ-ইনগুলি ব্যবহার করা হচ্ছে এবং সাধারণত অন্যান্য অ্যাপগুলি কী অবস্থানের অনুরোধ করে তার উপর নির্ভর করে।
প্রাপ্যতা শুধুমাত্র টেলিফোনি ডিভাইস। সাধারণত একটি কাজ সিম প্রয়োজন. অবস্থান সনাক্তকরণ উপলব্ধ অবস্থান প্রদানকারীর উপর নির্ভর করে।
ব্যবহারকারীর গোপনীয়তা

একজন ব্যবহারকারীর পছন্দের সময় অঞ্চল সাধারণত তাদের ভৌগলিক অবস্থান দ্বারা নির্ধারিত হয়। অবস্থান সংবেদনশীল তথ্য. ব্যবহারকারীরা টাইম জোন সনাক্তকরণের অংশ হিসাবে তাদের অবস্থান ভাগ করা সম্পর্কে জ্ঞান নিয়ে উদ্বিগ্ন হতে পারে৷ টাইম জোন সনাক্তকরণের সাথে সম্পর্কিত নয়, একটি ডিভাইসে চলমান সমস্ত অ্যাপ অ্যান্ড্রয়েড অনুমতির প্রয়োজন ছাড়াই ডিভাইসের বর্তমান টাইম জোন পড়তে পারে এবং অ্যাপগুলি এই তথ্য থেকে ডিভাইসের অবস্থান সম্পর্কে একটি অস্পষ্ট ধারণা অনুমান করতে পারে।

আরও নির্দিষ্টভাবে, সময় অঞ্চল সনাক্তকরণ প্যাসিভ বা সক্রিয় উপায়ে কাজ করতে পারে:

  • প্যাসিভ: ডিভাইসের পরিবেশে থাকা কিছু ডিভাইসটিকে সেই পরিবেশে ব্যবহার করার জন্য সময় অঞ্চল বলে।
  • সক্রিয়: ডিভাইসটিকে নিজের জন্য টাইম জোন তৈরি করতে হবে এবং ব্যবহারকারীদের গোপনীয়তা সেটিংস এবং তাদের সম্মতির উপর নির্ভর করে এটি করার জন্য ডিভাইসের অবস্থান গ্রহণ করে। এটি তখন বহিরাগত পরিষেবাগুলির সাথে তার অবস্থান ভাগ করতে পারে৷ ব্যবহারকারীর গোপনীয়তা এবং সম্মতি সম্পর্কে বিশদ বিবরণের জন্য নীচে আলোচনা দেখুন।

প্যাসিভ সনাক্তকরণ, যেমন টেলিফোনি অ্যালগরিদম সহ, ব্যবহারকারীদের জন্য কোনও অতিরিক্ত গোপনীয়তার প্রভাব নেই৷

সক্রিয় সনাক্তকরণ, যেমন অবস্থান অ্যালগরিদম সহ, ডিভাইসের অবস্থান নির্ধারণের সাথে জড়িত, যা ব্যবহারকারীরা সম্মত নাও হতে পারে এবং সময় অঞ্চল আইডি নির্ধারণ করার জন্য অবস্থানটি একটি নেটওয়ার্কের মাধ্যমে পাঠানো যেতে পারে।

টাইম জোন সনাক্তকরণের জন্য ব্যবহারকারীর গোপনীয়তার বিষয়ে অ্যান্ড্রয়েডের দৃষ্টিভঙ্গি ব্যবহারকারীকে পৃথকভাবে অ্যালগরিদমগুলি নিষ্ক্রিয় করার ক্ষমতা দেয় যা সক্রিয় হবে বলে আশা করা হচ্ছে। অতিরিক্তভাবে, AOSP প্ল্যাটফর্ম কোড সরাসরি অবস্থানের সাথে ডিল করে না: অবস্থান সনাক্তকরণ এবং টাইম জোন আইডিতে অবস্থান ম্যাপিং ডিভাইস নির্মাতাদের দ্বারা কনফিগার করা প্লাগ-ইন উপাদানগুলিতে ছেড়ে দেওয়া হয়।

ব্যবহারকারীর গোপনীয়তা বৈশিষ্ট্য সম্পর্কে আরও বিশদ বিবরণের জন্য, অবস্থান সময় অঞ্চল সনাক্তকরণ দেখুন।

কনফিগারেশন

ডিভাইস নির্মাতারা তার আচরণ পরিবর্তন করতে time_zone_detector পরিষেবা কনফিগার করতে পারে। এই বিভাগটি time_zone_detector পরিষেবার সাধারণ আচরণের জন্য কনফিগারেশন বিকল্পগুলি বর্ণনা করে। টেলিফোনি এবং টাইম জোন সনাক্তকরণ অ্যালগরিদমগুলির জন্য কনফিগারেশনের বিশদ বিবরণের জন্য, টেলিফোনি টাইম জোন সনাক্তকরণ এবং অবস্থান সময় অঞ্চল সনাক্তকরণ দেখুন।

বেস AOSP কনফিগারেশন হল frameworks/base/core/res/res/values/config.xml এ।

কনফিগারেশন কী AOSP মান বর্ণনা
config_supportTelephonyTimeZoneFallback true true হলে, time_zone_detector টেলিফোনি ফলব্যাক মোড ব্যবহার করে। এটি Android 13 এবং উচ্চতর সংস্করণের জন্য উপলব্ধ।

ডিভাইস ডিফল্ট আচরণ পরিবর্তন

AOSP-এ, স্বয়ংক্রিয় টাইম জোন সনাক্তকরণ ডিফল্টরূপে auto_time_zone সেটিং true সেট করে সক্ষম করা হয়। ডিফল্টরূপে স্বয়ংক্রিয় সময় সনাক্তকরণ অক্ষম করতে, frameworks/base/packages/SettingsProvider/res/values/defaults.xml এ সংজ্ঞায়িত def_auto_time_zone এর মান false এ সেট করুন।

অন্য ডিভাইস থেকে ব্যাকআপ পুনরুদ্ধার করার সময়, ফ্রেমওয়ার্ক ডিফল্টরূপে auto_time_zone সেটিংসের মান আপডেট করে। আপনি যদি নিশ্চিত করতে চান যে এই সেটিংটি ব্যাকআপ থেকে পুনরুদ্ধার করা হয়নি, frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml এ সংজ্ঞায়িত restore_blocked_global_settings অ্যারেতে auto_time_zone অন্তর্ভুক্ত করুন।

টাইম জোন ডিবাগিং এবং টেস্টিং

এই বিভাগটি time_zone_detector পরিষেবা এবং সমস্ত অ্যালগরিদম দ্বারা ভাগ করা অন্যান্য উপাদানগুলির আচরণ ডিবাগ এবং পরীক্ষা করার বিষয়ে তথ্য সরবরাহ করে।

device_config পরিষেবা ব্যবহার করে একটি ডিভাইস কনফিগার করুন

device_config পরিষেবাটি হল একটি পদ্ধতি যা Android-এ ব্যবহৃত মানগুলি ব্যবহার করে পরিবর্তনযোগ্য আচরণ কনফিগার করতে ব্যবহৃত হয় যা সাধারণত মালিকানা (নন-AOSP) কোড দ্বারা রিমোট সার্ভার থেকে টানা হয়। পরীক্ষার জন্য device_config মান ব্যবহার করার সময়, বিশেষ করে দীর্ঘ সময়ের ম্যানুয়াল পরীক্ষা চলাকালীন, ডিভাইসটি পতাকাগুলিকে সিঙ্ক্রোনাইজ করতে পারে, যা পতাকাগুলিকে পুনরায় সেট করবে এবং পরীক্ষার জন্য সেট করা মানগুলি পরিষ্কার করবে।

অ্যান্ড্রয়েড 12 বা উচ্চতর সংস্করণে, অস্থায়ীভাবে পতাকা সিঙ্ক্রোনাইজেশন প্রতিরোধ করতে, ব্যবহার করুন:

adb shell cmd device_config set_sync_disabled_for_tests persistent

পরীক্ষার পরে পতাকা সিঙ্ক্রোনাইজেশন পুনরুদ্ধার করতে, ব্যবহার করুন:

adb shell cmd device_config set_sync_disabled_for_tests none

পতাকা সিঙ্ক্রোনাইজেশন পুনরুদ্ধার করার পরে, ডিভাইসটি রিবুট করুন।

আরও তথ্যের জন্য, $ adb shell cmd device_config help ব্যবহার করুন।

টাইম_জোন_ডিটেক্টর পরিষেবার সাথে ইন্টারঅ্যাক্ট করুন

time_zone_detector কনফিগারেশন এবং time_zone_detector পরিষেবার অবস্থা দেখতে, ব্যবহার করুন:

adb shell cmd time_zone_detector dump

ডিবাগিং এবং টাইম জোন সনাক্তকরণ পরীক্ষা করার জন্য অতিরিক্ত কমান্ড দেখতে, ব্যবহার করুন:

adb shell cmd time_zone_detector help

সাহায্য আউটপুট device_config পরিষেবা বৈশিষ্ট্যগুলিকেও বর্ণনা করে যা পরীক্ষার জন্য বা উত্পাদনের জন্য time_zone_detector পরিষেবার আচরণকে প্রভাবিত করতে ব্যবহার করা যেতে পারে। বিস্তারিত জানার জন্য, device_config পরিষেবা ব্যবহার করে একটি ডিভাইস কনফিগার করা দেখুন।

টাইম জোন সনাক্তকরণ যাচাই করতে, পরীক্ষকদের অবশ্যই সচেতন হতে হবে যে time_zone_detector কোন অ্যালগরিদম ব্যবহার করছে। time_zone_detector এর বর্তমান অ্যালগরিদম বুঝতে এবং প্রভাবিত করতে, নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করুন:

  • সেটিংস UI এর মাধ্যমে দৃশ্যত চেক করুন। আরও তথ্যের জন্য, সময় অঞ্চল সেটিংস দেখুন।
  • adb এর মাধ্যমে কমান্ড লাইন ব্যবহার করুন:

    • time_zone_detector স্টেট ডাম্প করতে, adb shell cmd time_zone_detector dump ব্যবহার করুন
    • ডিভাইস সেটিং পরিবর্তন করতে, অন্যান্য time_zone_detector কমান্ড ব্যবহার করুন। আরও তথ্যের জন্য, adb shell cmd time_zone_detector help ব্যবহার করুন।

নিম্নে adb shell cmd time_zone_detector dump কমান্ড থেকে আউটপুটের একটি উদাহরণ, যেখানে বর্তমান অ্যালগরিদম এবং পরিষেবা অবস্থা সম্পর্কে তথ্য মোটা অক্ষরে রয়েছে:

$ adb shell cmd time_zone_detector dump
TimeZoneDetectorStrategy:
  mEnvironment.getCurrentUserId()=0
  mEnvironment.getConfiguration(currentUserId)=ConfigurationInternal{mUserId=0, mUserConfigAllowed=true, mTelephonyDetectionSupported=true, mGeoDetectionSupported=true, mAutoDetectionEnabled=true, mLocationEnabled=true, mGeoDetectionEnabled=true}
  [Capabilities=TimeZoneCapabilitiesAndConfig{mCapabilities=TimeZoneDetectorCapabilities{mUserHandle=UserHandle{0}, mConfigureAutoDetectionEnabledCapability=40, mConfigureGeoDetectionEnabledCapability=40, mSuggestManualTimeZoneCapability=30}, mConfiguration=TimeZoneConfiguration{mBundle=Bundle[{geoDetectionEnabled=true, autoDetectionEnabled=true}]}}]
  mEnvironment.isDeviceTimeZoneInitialized()=true
  mEnvironment.getDeviceTimeZone()=Europe/London
  Time zone change log:
  Manual suggestion history:
...
  Geolocation suggestion history:
...
  Telephony suggestion history:
...

তথ্য নিম্নরূপ ব্যাখ্যা করা যেতে পারে:

চাবি মান
mUserConfigAllowed ব্যবহারকারীকে ডিভাইস পলিসি কন্ট্রোলার দ্বারা তারিখ এবং সময় সেটিংস নিয়ন্ত্রণ করতে বাধা দেওয়া হয়েছে কিনা৷
mTelephonyDetectionSupported ডিভাইসে টেলিফোনি টাইম জোন সনাক্তকরণ আছে কিনা।
mGeoDetectionSupported ডিভাইসটি অবস্থানের সময় অঞ্চল সনাক্তকরণ সমর্থন করে কিনা। এটি কনফিগারেশন এবং অন্তত একটি LTZP উপস্থিতির উপর ভিত্তি করে কার্যকরী অবস্থা।
mAutoDetectionEnabled স্বয়ংক্রিয় সময় অঞ্চল সনাক্তকরণ সক্ষম কিনা।
mLocationEnabled প্রধান অবস্থান টগল.
mGeoDetectionEnabled অ্যালগরিদম সুইচ: false টেলিফোনি অ্যালগরিদম নির্দেশ করে এবং true লোকেশন অ্যালগরিদম নির্দেশ করে।

পরামর্শের ইতিহাসের তথ্য নির্দেশ করে যে কী পরামর্শগুলি সেটিংস (ম্যানুয়াল) এবং টেলিফোনি এবং অবস্থান অ্যালগরিদমের মাধ্যমে করা হয়েছে৷