তৃতীয় পক্ষের কলিং অ্যাপগুলিকে সমর্থন করে, তৃতীয় পক্ষের কলিং অ্যাপগুলিকে সমর্থন করে, তৃতীয় পক্ষের কলিং অ্যাপগুলিকে সমর্থন করে

Android 9 তৃতীয় পক্ষের (3P) কলিং অ্যাপগুলিকে আরও ভালভাবে সমর্থন করার জন্য API প্রদান করে। 3P কলিং অ্যাপগুলি সাধারণত টেলিফোনি এপিআই-এর উপর নির্ভর করে যেমন PHONE_STATE ব্রডকাস্ট ক্যারিয়ার ফোন কলের পাশাপাশি সহ-অস্তিত্বের জন্য। ফলস্বরূপ, 3P কলিং অ্যাপগুলিকে অবশ্যই ক্যারিয়ার কলগুলিকে অগ্রাধিকার দিতে হবে এবং প্রায়শই অ্যাপে ইনকামিং কলগুলিকে নীরবে প্রত্যাখ্যান করতে বা ক্যারিয়ার কলের জন্য একটি চলমান কল বন্ধ করার অবলম্বন করতে হবে।

অ্যান্ড্রয়েড 9-এর APIগুলি 3P অ্যাপ এবং ক্যারিয়ার কলের মধ্যে সমসাময়িক কলিং পরিস্থিতি সমর্থন করে। এটি সম্ভব করে তোলে, উদাহরণস্বরূপ, ক্যারিয়ার কলে নিযুক্ত থাকাকালীন একটি ইনকামিং 3P কল গ্রহণ করা। ব্যবহারকারী যখন 3P কলে নিযুক্ত হন তখন ক্যারিয়ার কলটি অনুষ্ঠিত হয় তা নিশ্চিত করার জন্য কাঠামোটি দায়িত্ব গ্রহণ করে।

Android 9-এ, 3P কলিং অ্যাপগুলিকে স্ব-পরিচালিত ConnectionService API প্রয়োগ করতে উৎসাহিত করা হয়। এই API ব্যবহার করে কীভাবে একটি কলিং অ্যাপ তৈরি করবেন সে সম্পর্কে আরও তথ্যের জন্য, একটি কলিং অ্যাপ তৈরি করুন দেখুন।

স্ব-পরিচালিত ConnectionService API ডেভেলপারদের সিস্টেম কল লগ-এ লগ ইন করা অ্যাপে কল করার জন্য অপ্ট-ইন করার সুযোগ দেয় (দেখুন EXTRA_LOG_SELF_MANAGED_CALLS )। অ্যান্ড্রয়েড কম্প্যাটিবিলিটি ডেফিনিশন ডকুমেন্ট (সিডিডি) (অনুচ্ছেদ 7.4.1.2) এর প্রয়োজনীয়তা অনুসারে, আপনাকে নিশ্চিত করতে হবে যে আপনার ডায়ালার/ফোন অ্যাপটি এই কল লগ এন্ট্রিগুলি প্রদর্শন করে এবং 3P কলিং অ্যাপের নামটি দেখায় যেখানে কলটি এসেছে (উদাহরণস্বরূপ AOSP ডায়লার অ্যাপ কীভাবে এই প্রয়োজনীয়তা পূরণ করে, দেখুন 3P কলিং অ্যাপ থেকে কল লগ এন্ট্রিগুলি )।

অ্যাপগুলি তাদের অ্যাপের সংযোগগুলিতে CAPABILITY_SUPPORT_HOLD এবং CAPABILITY_HOLD সেট করার জন্য দায়ী৷ যাইহোক, এটা সম্ভব যে একটি অ্যাপ কিছু পরিস্থিতিতে একটি কল ধরে রাখতে পারে না। কাঠামোর মধ্যে এই ধরনের মামলার সমাধানের বিধান রয়েছে।

দৃশ্যকল্প

নিম্নলিখিত পরিস্থিতিগুলি পরিচালনা করতে আপনার ডায়লার অ্যাপটি পরিবর্তন করা উচিত।

ইনকামিং কল পরিচালনা করা যা একটি চলমান কল সংযোগ বিচ্ছিন্ন করে

এমন একটি পরিস্থিতিতে যেখানে একটি চলমান 3P কল (যেমন একটি সুপারকলার কল) যা হোল্ড সমর্থন করে না এবং ব্যবহারকারী একটি মোবাইল কল পান (যেমন তাদের ক্যারিয়ার FooCom এর মাধ্যমে), আপনার ডায়ালার/ফোন অ্যাপ ব্যবহারকারীকে নির্দেশ করে যে উত্তর দিচ্ছে মোবাইল নেটওয়ার্ক কল চলমান 3P কল শেষ করবে।

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

একটি উদাহরণের জন্য নীচের ব্যবহারকারী ইন্টারফেস দেখুন:

একটি চলমান 3P কল সংযোগ বিচ্ছিন্ন করা ইনকামিং কল৷
চিত্র 1. ইনকামিং কল যা একটি চলমান 3P কল সংযোগ বিচ্ছিন্ন করে

আপনার ডায়ালার অ্যাপটি কল এক্সট্রা চেক করে একটি ইনকামিং কল অন্য একটি কল সংযোগ বিচ্ছিন্ন করে কিনা তা পরীক্ষা করতে পারে৷ নিশ্চিত করুন যে EXTRA_ANSWERING_DROPS_FG_CALL TRUE তে সেট করা আছে, এবং EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME অ্যাপটির নামে সেট করা আছে যার কল ইনকামিং মোবাইল কলের উত্তর দেওয়ার পরে সংযোগ বিচ্ছিন্ন হয়ে গেছে।

3P কলিং অ্যাপ থেকে কল লগ এন্ট্রি

3P কলিং অ্যাপের ডেভেলপাররা তাদের অ্যাপে কল করার জন্য সিস্টেম কল লগ-এ লগ-ইন করা বেছে নিতে পারেন ( EXTRA_LOG_SELF_MANAGED_CALLS দেখুন)। এর মানে হল যে কল লগে এন্ট্রি থাকা সম্ভব যা মোবাইল নেটওয়ার্ক কলের জন্য নয়।

যখন AOSP ডায়ালার অ্যাপটি একটি 3P কলিং অ্যাপের সাথে সম্পর্কিত কল লগ এন্ট্রিগুলি প্রদর্শন করে, তখন যে অ্যাপে কলটি হয়েছিল সেই অ্যাপের নামটি কল লগে প্রদর্শিত হয়, যেমনটি নীচে চিত্রিত করা হয়েছে:

3P কলিং অ্যাপের সাথে কল লগ এন্ট্রি
চিত্র 2. ডায়ালার অ্যাপে 3P কলিং অ্যাপের নাম সহ কল ​​লগ এন্ট্রি

একটি কল লগ এন্ট্রির সাথে যুক্ত একটি অ্যাপের নাম নির্ধারণ করতে, কল লগ প্রদানকারীর PHONE_ACCOUNT_COMPONENT_NAME এবং PHONE_ACCOUNT_ID কলামগুলি ব্যবহার করে PhoneAccountHandle এর একটি উদাহরণ তৈরি করুন, যা একটি কল লগ এন্ট্রির উত্স সনাক্ত করে৷ ফোনঅ্যাকাউন্টের বিস্তারিত জানতে TelecomManager জিজ্ঞাসা করুন।
একটি 3P কলিং অ্যাপ থেকে কল লগ এন্ট্রি করা হয়েছে কিনা তা নির্ধারণ করতে, CAPABILITY_SELF_MANAGED সেট করা আছে কিনা তা দেখতে PhoneAccount ক্ষমতা পরীক্ষা করুন।

প্রত্যাবর্তিত PhoneAccount এর getLabel পদ্ধতিটি 3P কলিং অ্যাপ থেকে কল লগ এন্ট্রির সাথে যুক্ত অ্যাপের নাম প্রদান করে।

বৈধতা

আপনার ডিভাইসটি 3P কলিং অ্যাপ সমর্থন করে তা পরীক্ষা করতে, Telecomm পরীক্ষা অ্যাপ্লিকেশন ব্যবহার করুন, যা স্ব-পরিচালিত ConnectionService API প্রয়োগ করে। অ্যাপ্লিকেশনটি /packages/services/Telecomm/testapps/ এ অবস্থিত।

  1. ব্যবহার করে আপনার অ্যান্ড্রয়েড সোর্স রিপোজিটরির রুট থেকে টেস্ট অ্যাপ তৈরি করুন:

    mmma packages/services/Telecomm/testapps/

  2. adb install -g -r <apk path> ব্যবহার করে বিল্ড apk ইনস্টল করুন। একটি স্ব-পরিচালিত নমুনা আইকন তারপর আপনার লঞ্চার যোগ করা হয়.

  3. পরীক্ষা অ্যাপ্লিকেশন খুলতে আইকনে আলতো চাপুন।

ইনকামিং কল পরিচালনা করা যা একটি চলমান কল সংযোগ বিচ্ছিন্ন করে

একটি ইনকামিং কল একটি চলমান 3P কল সংযোগ বিচ্ছিন্ন করে তা যাচাই করতে এই পদক্ষেপগুলি অনুসরণ করুন৷

3P কলিং অ্যাপের জন্য পরীক্ষা করুন
চিত্র 3. স্ব-পরিচালিত ConnectionService API-এর নমুনা বাস্তবায়ন সহ অ্যাপ্লিকেশন পরীক্ষা করুন
  1. হোল্ডেবল অপশনটি আনচেক করুন।
  2. একটি নতুন নমুনা আউটগোয়িং কল শুরু করতে আউটগোয়িং এ আলতো চাপুন৷
  3. কলটি সক্রিয় করতে সক্রিয় বোতামে আলতো চাপুন৷
  4. অন্য ফোন দিয়ে পরীক্ষার অধীনে ডিভাইসের ফোন নম্বরে কল করুন। এটি এমন পরিস্থিতির আহ্বান করে যেখানে আপনার ডায়ালারটি একটি অ্যাপের নামের সাথে সরবরাহ করা হয়েছে, যার কলটি সংযোগ বিচ্ছিন্ন হবে।
  5. আপনি শেষ হয়ে গেলে, পরীক্ষা অ্যাপে সংযোগ বিচ্ছিন্ন করুন বোতামে আলতো চাপুন।

3P কলিং অ্যাপ থেকে কল লগ এন্ট্রি

উপরের ধাপগুলি সম্পূর্ণ করার পরে, পরীক্ষা অ্যাপটিকে সিস্টেম কল লগে একটি কল লগ করা উচিত ছিল৷ ডিভাইসটি নিশ্চিত করতে 3P কলিং অ্যাপ থেকে কল লগ করছে, আপনার ডায়ালার অ্যাপ খুলুন এবং সিস্টেম কল লগে কলটি উপস্থিত হয়েছে তা নিশ্চিত করুন।