অডিও সুইচ সার্টিফিকেশন নির্দেশিকা

সার্টিফিকেশন জন্য প্রস্তুতি

  • পরীক্ষার ডিভাইস প্রস্তুত করুন।
    • আপনার 5টি Android ডিভাইস লাগবে।
      • এই ডিভাইস অন্তর্ভুক্ত করা আবশ্যক:
        • কমপক্ষে একটি Android T (13) এবং একটি Android V (15)৷
        • কমপক্ষে একটি স্যামসাং এবং একটি পিক্সেল।
        • যেমন:
          • 1 OnePlus (Android 10)।
          • 3 Samsung (Android 11, 12, 13)।
          • 1 পিক্সেল (Android 15)।
    • অডিও সুইচ ছাড়া একটি ডিভাইস:
      • যেকোনো আইফোন, পিসি, ব্লুটুথ (বিটি)-সক্ষম ল্যাপটপ, বা একটি অ্যান্ড্রয়েড ফোন যা অডিও সুইচ নিষ্ক্রিয়।
        • আপনি ব্লুটুথ ডিভাইসের বিস্তারিত সেটিং থেকে অডিও সুইচ বন্ধ করতে পারেন।
      • মাল্টিপয়েন্ট (এমপি) টেস্ট কেস 2.8-এর জন্য 5টি টেস্ট ফোন ছাড়াও অডিও সুইচ ছাড়া একটি ডিভাইস প্রয়োজন।
  • পরীক্ষার ফোনে ডিবাগ বিজ্ঞপ্তিগুলি দেখানোর জন্য আপনার পরীক্ষার অ্যাকাউন্টগুলির সাথে অডিও সুইচ পরীক্ষা গ্রুপে যোগ দিন।

    • এটি Google অ্যানালিটিক্সের মাধ্যমে পরীক্ষার ডেটা সংগ্রহ করতে Googleকে সক্ষম করে।

A2DP+HFP সহ ক্লাসিক

  • নিশ্চিত করুন যে সমস্ত Android ডিভাইসে GmsCore সংস্করণ 23.xx.xx বা তার পরে ইনস্টল করা আছে।

LE অডিও সহ BLE

  • কমপক্ষে দুটি রেফারেন্স ফোনে অবশ্যই LE অডিও সমর্থন করবে৷
    • উদাহরণস্বরূপ, একটি স্যামসাং ফোন এবং একটি পিক্সেল ফোন যা LE অডিও সমর্থন করে৷
  • নিশ্চিত করুন যে সমস্ত Android ডিভাইসে GmsCore সংস্করণ 24.33.xx বা তার পরে ইনস্টল করা আছে।

সার্টিফিকেশন মানদণ্ড

  • সমস্ত পরীক্ষার ক্ষেত্রে লক্ষ্য পরিবর্তনের সাফল্যের হার অবশ্যই 95% অতিক্রম করতে হবে।
  • একটি সুইচের প্রয়োজনের পরীক্ষায়, প্রোফাইল সংযোগ এবং স্যুইচ সক্রিয় অবস্থা অন্তত 75% ক্ষেত্রে অডিও ইভেন্ট ট্রিগার করার পরে 3 সেকেন্ডের মধ্যে সম্পূর্ণ করতে হবে।

A2DP+HFP সহ ক্লাসিক

স্ব-পরীক্ষাগুলি অবশ্যই নিম্নলিখিত সংমিশ্রণে করা উচিত:

  • ফোন A=Android S (12) + ফোন B=Android T (13)
  • ফোন A=Android T (13) + ফোন B=Android S (12)

LE অডিও সহ BLE

স্ব-পরীক্ষাগুলি অবশ্যই নিম্নলিখিত সংমিশ্রণে করা উচিত:

  • ফোন A: BT ক্লাসিক, ফোন B: BT ক্লাসিক
  • ফোন A: LE অডিও, ফোন B: BT ক্লাসিক
  • ফোন A: BT ক্লাসিক, ফোন B: LE অডিও

ঐচ্ছিকভাবে, ডুয়াল LE অডিও সংযোগ সমর্থনকারী প্রদানকারীদের পরীক্ষা করা উচিত:

  • ফোন A: LE অডিও, ফোন B: LE অডিও

টেস্টিং গাইড

ডিভাইস আন্ডার টেস্ট (DUT) প্রস্তুতি

  • যাচাই করুন যে বিটি ডিভাইসটি পূর্বে পরীক্ষার Google অ্যাকাউন্টে লগ ইন করা কোনো ফোনের সাথে যুক্ত করা হয়নি।
    • যদি ডিভাইসটি টেস্টিং Google অ্যাকাউন্টের সাথে যুক্ত করা হয়ে থাকে, তাহলে পেয়ারিং সাফ করতে নিম্নলিখিতগুলি করুন:
      • জোড়া ডিভাইসে:
        • ব্লুটুথ সেটিংসে নেভিগেট করুন।
        • "ডিভাইস ভুলে যান" নির্বাচন করুন।
        • এয়ারপ্লেন মোড চালু এবং বন্ধ টগল করুন।
    • নিশ্চিত করুন "স্বয়ংক্রিয়ভাবে ডিভাইসগুলি সংরক্ষণ করুন" চালু আছে৷
      • এই সুইচটি ডিফল্টরূপে বন্ধ।
      • আপনি সেটিংস > Google > ডিভাইস > সংরক্ষিত ডিভাইসে এই বিকল্পটি খুঁজে পেতে পারেন (প্রতি DUT-এ একটি)।
    • ব্লুটুথ ডিভাইসটিকে পেয়ারিং মোডে রাখুন।
    • প্রাথমিক ব্লুটুথ ডিভাইস (A) যুক্ত করুন।
    • পরবর্তী ব্লুটুথ ডিভাইসগুলিকে অন্যান্য ডিভাইসের সাথে যুক্ত করুন (B, C, D, ইত্যাদি)।

ব্যাপ্তি

  • সমস্ত হেডসেট অডিও সুইচ স্ব-পরীক্ষা টেমপ্লেটের বিভিন্ন ট্যাব থেকে পরীক্ষা চালায়।
  • শুধুমাত্র একক পয়েন্ট (SP) মোড সমর্থনকারী হেডসেটগুলি নিম্নলিখিতগুলি চালায়:
    • জেনেরিক_টেস্ট ট্যাব।
  • এমপি মোড সমর্থনকারী হেডসেটগুলি নিম্নলিখিত চালায়:
    • জেনেরিক_টেস্ট ট্যাব।
    • শুধুমাত্র মাল্টিপয়েন্ট ট্যাব।
  • এমপি হেডসেটগুলি যা এসপি মোডে টগল করা যেতে পারে সেগুলি নিম্নলিখিতগুলি চালায়:
    • MP বন্ধ সহ Generic_test ট্যাব।
    • MP চালু থাকা Generic_test ট্যাব।
    • MP সহ শুধুমাত্র মাল্টিপয়েন্ট ট্যাব চালু আছে।

স্ব-বিশ্রাম এবং স্ব-পরীক্ষা রিপোর্ট সম্পূর্ণ করা

A2DP+HFP সহ ক্লাসিক

  • ডিভাইস B প্রধান DUT হবে।
    • টেমপ্লেটের উপরে "ফোন" এবং "OS" ক্ষেত্রগুলিতে ডিভাইস B-এর বিশদ বিবরণ লিখুন।

একটি উদাহরণ পরীক্ষার ক্ষেত্রে:

  • টেস্ট ফোন:

    • ডিভাইস 1: Samsung (Android 13)
    • ডিভাইস 2: পিক্সেল (Android 12 বা 13) এবং অন্যান্য।
  • সম্পাদিত পরীক্ষা:

    • চালান 1. ডিভাইস A=Samsung S10+ (12), ডিভাইস B=Pixel 7 pro (13) কলাম D: Phone=Pixel 7 pro, OS=Android 13
    • রান 2। ডিভাইস A=Pixel 7 pro (13), ডিভাইস B=Pixel 6(12) কলাম E: Phone=Pixel 6, OS=Android 12

স্ব-পরীক্ষা টেমপ্লেটে একটি সম্পূর্ণ পরীক্ষার একটি উদাহরণ:

This picture shows the results of an example test

LE অডিও সহ BLE

  1. ডিভাইস A=Android V (15) + ডিভাইস B=Android T (13)
  2. ডিভাইস A=Android T (13) + ডিভাইস B=Android V (15)
  3. ডিভাইস A=Android T (13) + ডিভাইস B=Android S (12)
  4. ডিভাইস A=Android T (15) + ডিভাইস B=Android V (15)
  5. ডিভাইস B প্রধান DUT হবে।
    • টেমপ্লেটের উপরে "ফোন" এবং "OS" ক্ষেত্রগুলিতে ডিভাইস B-এর বিশদ বিবরণ লিখুন।

একটি উদাহরণ পরীক্ষার ক্ষেত্রে:

  • টেস্ট ফোন:

    • ডিভাইস 1: Samsung (Android 13)
    • ডিভাইস 2: Pixel (Android 15) এবং অন্যান্য।
  • সম্পাদিত পরীক্ষা:

    • [LEA+BT]: ডিভাইস A= Pixel 8 (15), Device B=Pixel 7 pro (13) কলাম D: Phone=Pixel 7 pro, OS=Android 13
    • [BT+LEA]: ডিভাইস A=Pixel 7 (13), ডিভাইস B=Pixel 8 (Android 15) কলাম E: Phone=Pixel 8, OS=Android 15
    • [BT+BT]: ডিভাইস A=Pixel 7 pro (13), ডিভাইস B=Samsung S10+ (12) কলাম E: Phone=Samsung S10+, OS=Android 12
    • [LEA+LEA]: ডিভাইস A=Pixel 8 (15), ডিভাইস B=Pixel 8(15) কলাম E: Phone=Pixel 8, OS=Android 15

স্ব-পরীক্ষা টেমপ্লেটে একটি সম্পূর্ণ পরীক্ষার একটি উদাহরণ:

This picture shows the results of an example test

অডিও ইভেন্ট:

  • 4 ধরনের পরীক্ষিত অডিও ইভেন্ট এবং প্রস্তাবিত টেস্টিং অ্যাপ হল:

    1. কল করুন:
      1. অন্তর্নির্মিত ফোন অ্যাপ।
    2. ভিওআইপি: যেকোনো ভিওআইপি অ্যাপ কাজ করবে, যেমন:
      1. অডিও সুইচ টেস্ট অ্যাপ।
      2. FB মেসেঞ্জার।
      3. লাইন।
      4. হোয়াটসঅ্যাপ।
      5. গুগল মিট।
      6. গুগল মিট।
    3. মিডিয়া: যেকোনো অডিও প্লেয়ার কাজ করবে, যেমন:
      1. অডিও সুইচ টেস্ট অ্যাপ।
      2. ইউটিউব মিউজিক।
      3. অ্যাপল মিউজিক।
      4. Spotify.
      5. গুগল পডকাস্ট।
    4. খেলা:
      1. অডিও সুইচ টেস্ট অ্যাপ।

ডিবাগ তথ্য:

  • fp-sass-অংশীদার-পরীক্ষা গ্রুপে যোগদানের পরে বিজ্ঞপ্তিগুলি সক্রিয় করা হয়। এখানে কিছু উদাহরণ আছে:

    • সর্বশেষ রাষ্ট্রীয় বিজ্ঞপ্তি:

    Figure 1: This shows the 'latest state notification' message.

    • কোন সুইচ বিজ্ঞপ্তি নেই:

    Figure 2: This shows the 'no switch notification' message.

    • লেটেন্সি বিজ্ঞপ্তি পরিবর্তন করুন:

    Figure 3: This shows the 'switch latency notification' message.

লেটেন্সি পরিমাপ

  • দুই ধরনের সুইচ লেটেন্সি আছে:
    1. একটি ব্লুটুথ প্রোফাইল সংযোগ বিচ্ছিন্ন সিকারের সাথে সংযুক্ত করা হচ্ছে৷
      • এর মধ্যে রয়েছে সমস্ত SinglePoint কেস এবং কিছু MP কেস যাদের টার্গেট সিকার (ডিভাইস B) সংযোগ বিচ্ছিন্ন করা হয়েছে।
    2. সক্রিয় সংযুক্ত সিকার স্যুইচ করা হচ্ছে।
      • এর মধ্যে কিছু এমপি কেস রয়েছে যেগুলি লক্ষ্য অনুসন্ধানকারী (ডিভাইস B) ইতিমধ্যেই সংযুক্ত।
  • লেটেন্সি তথ্য পুনরুদ্ধার করার দুটি উপায় আছে:
    1. সমস্ত লেটেন্সি adb কমান্ড দ্বারা ডাম্প করা যেতে পারে।
      • বিস্তারিত জানার জন্য ডাম্প লেটেন্সি বিভাগে পড়ুন।
      • এই কমান্ডটি অন্তত একটি পরীক্ষার কেস শেষ করার পরে লেটেন্সি প্রদান এবং রেকর্ড করতে পারে।
    2. অডিও সুইচ পরীক্ষা অ্যাপ ব্যবহার করে।
      • টার্গেট সিকারে চলমান অ্যাপটি স্যুইচ করার পরে লেটেন্সি প্রদর্শন করবে।
      • কোন সুইচ না থাকলে, অ্যাপটি 'নো সুইচ' কারণ প্রদর্শন করবে।

অডিও সুইচ টেস্ট অ্যাপ:

  • একটি স্ব-পরীক্ষা চলাকালীন VoIP/মিডিয়া/গেম অডিও ইভেন্টগুলিকে ট্রিগার করতে অ্যাপটি ব্যবহার করা পরীক্ষার সেটআপকে সহজ করবে এবং অনুসন্ধানকারীর ইভেন্ট লেটেন্সি কমিয়ে দেবে।
    • সর্বশেষ সংস্করণ এখানে ডাউনলোড করা যাবে.
    • LE অডিও ভিওআইপি পরীক্ষাটি ম্যানুয়ালি সক্ষম করার জন্য একটি নীতির প্রয়োজন: > adb root > adb shell settings put global hidden_api_policy 1 > adb রিবুট
  • অ্যাপ ইনস্টলেশন:
    • আপনার টেস্ট ফোনে apk কপি করুন এবং এটি খুলুন।
    • বিকল্পভাবে, adb install audio_test_app.apk ব্যবহার করুন।
  • আপনি যদি বিজ্ঞপ্তি অ্যাক্সেসের জন্য জিজ্ঞাসা করা একটি ডায়ালগ দেখতে পান:
    1. "ঠিক আছে" ক্লিক করুন
    2. অ্যাপের তালিকায় "FP SASS পরীক্ষা" বেছে নিন
    3. বিজ্ঞপ্তি অ্যাক্সেসের অনুমতি দিন।

অ্যাপ ওভারভিউ:

This picture is an example of the app running

  • লক্ষ্য প্রদানকারী

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

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

    • এই বিকল্পটি অডিও স্ট্রিমগুলির মধ্যে ডিভাইসটি স্যুইচ করতে ব্যবহৃত হয়।

অডিও প্রকার

A2DP+HFP সহ ক্লাসিক

  • ভিওআইপি
    • এই মোডটি নির্বাচন করলে অডিও মোড AudioManager.MODE_IN_COMMUNICATION এ পরিবর্তন হবে এবং AudioManager.startBluetoothSco কল করুন, তারপর USAGE_VOICE_COMMUNICATION এর সাথে অডিও চালান।
    • স্ট্রিমের ধরন হল STREAM_VOICE_CALL
    • প্রদানকারী সংযোগের অবস্থা 5 সেকেন্ডের মধ্যে CONNECTED_HFP এ স্যুইচ করা উচিত।
  • মিডিয়া
    • এই মোডটি নির্বাচন করলে AVRCP সমর্থনকারী অডিও বাজবে৷ অডিও ব্যবহারের ধরন হল: USAGE_MEDIA
    • প্রদানকারীর সংযোগের অবস্থা 5 সেকেন্ডের মধ্যে CONNECTED_A2DP_WITH_AVRCP এ স্যুইচ করা উচিত।
    • সংযোগের অবস্থা সংক্ষিপ্তভাবে CONNECTED_A2DP_ONLY তে স্যুইচ করতে পারে যখন শুরু বা বন্ধ করা হয়।
  • খেলা
    • এই মোডটি নির্বাচন করলে অডিও বাজবে যা AVRCP সমর্থন করে না। অডিও ব্যবহারের ধরন হল: USAGE_GAME
    • প্রদানকারীর সংযোগের অবস্থা 5 সেকেন্ডের মধ্যে CONNECTED_A2DP_ONLY তে স্যুইচ করা উচিত।

LE অডিও সহ BLE

  • ভিওআইপি

    • এই মোডটি নির্বাচন করা অডিও মোডকে AudioManager.MODE_IN_COMMUNICATION এ পরিবর্তন করবে। MODE_IN_COMMUNICATION এবং USAGE_VOICE_COMMUNICATION এর সাথে অডিও চালাবে।
    • স্ট্রিমের ধরন হল STREAM_VOICE_CALL
    • প্রদানকারী সংযোগের অবস্থা 5 সেকেন্ডের মধ্যে CONNECTED_LE_AUDIO_CALL এ স্যুইচ করা উচিত।
  • মিডিয়া

    • এই মোডটি নির্বাচন করলে STREAM_MUSIC হিসাবে স্ট্রিমের ধরন সহ অডিও চালানো হবে। অডিও ব্যবহারের ধরন হল: USAGE_MEDIA
    • প্রদানকারী সংযোগের অবস্থা 5 সেকেন্ডের মধ্যে CONNECTED_LE_AUDIO_MEDIA_WITH_CONTROL এ স্যুইচ করা উচিত।
    • শুরু বা বন্ধ করার সময় সংযোগের অবস্থা সংক্ষিপ্তভাবে CONNECTED_LE_AUDIO_MEDIA_WITHOUT_CONTROL এ স্যুইচ হতে পারে।
  • খেলা

    • এই মোডটি নির্বাচন করা অডিও চালায় যা ব্যবহারকারীর সরাসরি নিয়ন্ত্রণ নেই৷ অডিও ব্যবহারের ধরন হল: USAGE_GAME
    • প্রদানকারীর সংযোগের অবস্থা 5 সেকেন্ডের মধ্যে CONNECTED_LE_AUDIO_MEDIA_WITHOUT_CONTROL এ স্যুইচ করা উচিত।
  • প্লে এবং স্টপ বোতাম

    • প্লে এবং স্টপ বোতামগুলি অডিও শুরু বা বন্ধ করে।
  • ফলাফল পরিবর্তন করুন

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

ডাম্প লেটেন্সি

  • ম্যানুয়াল পরীক্ষা চালানোর সময় নিম্নলিখিত কমান্ডটি ব্যবহারকারীকে লেটেন্সি পরিমাপ ক্যাপচার করার অনুমতি দেয়: adb shell dumpsys activity service com.google.android.gms/.nearby.discovery.service.DiscoveryService
    • লেটেন্সি পরিমাপ NearbyDeviceManager এর SwitchHistory বিভাগের অধীনে দেখানো হয়েছে:
            NearbyDeviceManager
              Nearby Sass device count: 1
                Sass device - address:XX:XX:XX:XX:XX:XX, name:Googler's Pixel Buds, accountKey:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, modelId:6edaf7
                  SwitchHistory
                    15:30:21:166 - 15:30:25:201, latency 3035ms, Succeed, SASS_TRIGGERED_CONNECT, SASS switch, A2DP
                    15:34:58:568 - 15:34:58:568, latency 0ms, Succeed, SWITCH_ACTIVE_TO_SELF, SASS switch, HFP
                    15:36:26:615 - 15:36:31:603, latency 1988ms, Succeed, SASS_TRIGGERED_CONNECT, SASS switch, A2DP
                    15:37:56:108 - 15:37:56:250, latency 142ms, Succeed, SWITCH_ACTIVE_TO_SELF, SASS switch, A2DP"
  • যে কোনো সুইচ যা GmsCore পরিমাপ করতে পারে না (যেমন HFP-এর জন্য সক্রিয় সুইচ) 0ms লেটেন্সি হিসেবে রেকর্ড করা হবে।

লগ প্যাটার্নের রেফারেন্স:

Examples of logs from the latency test

পরিচিত সমস্যা:

সিকার দ্বারা সৃষ্ট পরিচিত বাগগুলি নিম্নলিখিত:

  1. ভুল গেম অডিও স্যুইচিং.
    • Samsung ফোনগুলি গেম খেলার সময় সংযোগের অবস্থা CONNECTED_A2DP_ONLY এর পরিবর্তে CONNECTED_A2DP_WITH_AVRCP এ সেট করবে৷
    • কিছু গেম (যেমন ক্যান্ডি ক্রাশ) ব্যাকগ্রাউন্ড মিউজিক রিপ্লে করতে পারে এবং ব্যবহারকারীর ইনপুট ছাড়াই একটি নতুন অডিও ইভেন্ট ট্রিগার করতে পারে। সংযুক্ত ফোনগুলি ক্রমাগত প্রতিটি ফোনে অডিও স্যুইচ করতে পারে যা গেমটি খোলে৷