Android 6.0 APIs

অ্যান্ড্রয়েড 6.0 ( M ) ব্যবহারকারী এবং অ্যাপ বিকাশকারীদের জন্য নতুন বৈশিষ্ট্যগুলি অফার করে৷ এই নথিটি সবচেয়ে উল্লেখযোগ্য API-এর একটি ভূমিকা প্রদান করে।

বিকাশ শুরু করুন

Android 6.0 এর জন্য অ্যাপ তৈরি করা শুরু করতে, আপনাকে প্রথমে Android SDK পেতে হবে। তারপর Android 6.0 SDK প্ল্যাটফর্ম এবং সিস্টেম চিত্রগুলি ডাউনলোড করতে SDK ম্যানেজার ব্যবহার করুন৷

আপনার লক্ষ্য API স্তর আপডেট করুন

অ্যান্ড্রয়েড চালিত ডিভাইসগুলির জন্য আপনার অ্যাপটিকে আরও ভালভাবে অপ্টিমাইজ করতে, আপনার targetSdkVersion "23" এ সেট করুন, একটি অ্যান্ড্রয়েড সিস্টেম ছবিতে আপনার অ্যাপ ইনস্টল করুন, এটি পরীক্ষা করুন, তারপর এই পরিবর্তনের সাথে আপডেট করা অ্যাপটি প্রকাশ করুন৷

আপনার minSdkVersion দ্বারা সমর্থিত নয় এমন APIগুলি চালানোর আগে সিস্টেম API স্তরের জন্য আপনার কোডে শর্ত যোগ করে আপনি পুরানো সংস্করণগুলিকে সমর্থন করার সময় Android APIগুলি ব্যবহার করতে পারেন৷ পশ্চাৎপদ সামঞ্জস্য বজায় রাখার বিষয়ে আরও জানতে, বিভিন্ন প্ল্যাটফর্ম সংস্করণ সমর্থনকারী পড়ুন।

API স্তরগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পড়ুন API স্তর কী?

আঙুলের ছাপ প্রমাণীকরণ

এই রিলিজটি আপনাকে ব্যবহারকারীদের তাদের আঙ্গুলের ছাপ স্ক্যানগুলি সমর্থিত ডিভাইসগুলিতে ব্যবহার করে প্রমাণীকরণ করতে দেওয়ার জন্য নতুন APIগুলি অফার করে, Android কীস্টোর সিস্টেমের সাথে এই APIগুলি ব্যবহার করুন৷

ফিঙ্গারপ্রিন্ট স্ক্যানের মাধ্যমে ব্যবহারকারীদের প্রমাণীকরণ করতে, নতুন FingerprintManager ক্লাসের একটি উদাহরণ পান এবং authenticate() পদ্ধতিতে কল করুন। আপনার অ্যাপটি অবশ্যই একটি ফিঙ্গারপ্রিন্ট সেন্সর সহ একটি সামঞ্জস্যপূর্ণ ডিভাইসে চলছে৷ আপনার অ্যাপে ফিঙ্গারপ্রিন্ট প্রমাণীকরণ প্রবাহের জন্য আপনাকে অবশ্যই ইউজার ইন্টারফেস প্রয়োগ করতে হবে এবং আপনার UI-তে স্ট্যান্ডার্ড অ্যান্ড্রয়েড ফিঙ্গারপ্রিন্ট আইকন ব্যবহার করতে হবে। অ্যান্ড্রয়েড ফিঙ্গারপ্রিন্ট আইকন ( c_fp_40px.png ) বায়োমেট্রিক প্রমাণীকরণ নমুনায় অন্তর্ভুক্ত করা হয়েছে। আপনি যদি একাধিক অ্যাপ্লিকেশান তৈরি করেন যা ফিঙ্গারপ্রিন্ট প্রমাণীকরণ ব্যবহার করে, মনে রাখবেন যে প্রতিটি অ্যাপকে অবশ্যই ব্যবহারকারীর আঙুলের ছাপ স্বাধীনভাবে প্রমাণীকরণ করতে হবে।

আপনার অ্যাপে এই বৈশিষ্ট্যটি ব্যবহার করতে, প্রথমে আপনার ম্যানিফেস্টে USE_FINGERPRINT অনুমতি যোগ করুন।

<uses-permission
        android:name="android.permission.USE_FINGERPRINT" />
মোবাইল ফিঙ্গারপ্রিন্ট প্রমাণীকরণ কার্যকারিতা দেখাচ্ছে

ফিঙ্গারপ্রিন্ট প্রমাণীকরণের একটি অ্যাপ বাস্তবায়ন দেখতে, বায়োমেট্রিক প্রমাণীকরণ নমুনা পড়ুন। আপনি কীভাবে অন্যান্য Android API-এর সাথে এই প্রমাণীকরণ APIগুলি ব্যবহার করতে পারেন তার একটি প্রদর্শনের জন্য, ভিডিও ফিঙ্গারপ্রিন্ট এবং পেমেন্ট API দেখুন৷

আপনি যদি এই বৈশিষ্ট্যটি পরীক্ষা করে থাকেন তবে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনি যদি না করে থাকেন তাহলে Android SDK Tools Revision 24.3 ইনস্টল করুন।
  2. সেটিংস > নিরাপত্তা > ফিঙ্গারপ্রিন্টে গিয়ে এমুলেটরে একটি নতুন আঙুলের ছাপ নথিভুক্ত করুন, তারপর তালিকাভুক্তির নির্দেশাবলী অনুসরণ করুন।
  3. নিম্নলিখিত কমান্ডের সাহায্যে ফিঙ্গারপ্রিন্ট স্পর্শ ইভেন্টগুলি অনুকরণ করতে একটি এমুলেটর ব্যবহার করুন। লকস্ক্রীনে বা আপনার অ্যাপে ফিঙ্গারপ্রিন্ট টাচ ইভেন্ট অনুকরণ করতে একই কমান্ড ব্যবহার করুন।
    adb -e emu finger touch <finger_id>
    

    উইন্ডোজে, আপনাকে telnet 127.0.0.1 <emulator-id> এর পরে finger touch <finger_id> চালাতে হতে পারে।

শংসাপত্র নিশ্চিত করুন

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

একটি ব্যবহারকারীর সফলভাবে প্রমাণীকরণের পরে একই কী পুনরায় ব্যবহার করা যেতে পারে এমন সময়সীমা নির্ধারণ করতে, আপনি যখন একটি KeyGenerator বা KeyPairGenerator সেট আপ করবেন তখন নতুন setUserAuthenticationValidityDurationSeconds() পদ্ধতিতে কল করুন।

অত্যধিকভাবে পুনরায় প্রমাণীকরণ ডায়ালগ দেখানো এড়িয়ে চলুন -- আপনার অ্যাপগুলিকে প্রথমে ক্রিপ্টোগ্রাফিক বস্তু ব্যবহার করার চেষ্টা করা উচিত এবং যদি সময়সীমা শেষ হয়ে যায়, তাহলে আপনার অ্যাপের মধ্যে ব্যবহারকারীকে পুনরায় প্রমাণীকরণ করতে createConfirmDeviceCredentialIntent() পদ্ধতি ব্যবহার করুন।

অ্যাপ লিঙ্কিং

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

অ্যাপের জন্য স্বয়ংক্রিয় ব্যাকআপ

সিস্টেমটি এখন স্বয়ংক্রিয়ভাবে সম্পূর্ণ ডেটা ব্যাকআপ এবং অ্যাপগুলির জন্য পুনরুদ্ধার করে। এই আচরণটি সক্ষম করতে আপনার অ্যাপটিকে অবশ্যই Android 6.0 (API স্তর 23) লক্ষ্য করতে হবে; আপনাকে কোনো অতিরিক্ত কোড যোগ করতে হবে না। ব্যবহারকারীরা তাদের Google অ্যাকাউন্ট মুছে ফেললে, তাদের ব্যাকআপ ডেটাও মুছে ফেলা হয়। এই বৈশিষ্ট্যটি কীভাবে কাজ করে এবং ফাইল সিস্টেমে কী ব্যাক আপ করতে হবে তা কীভাবে কনফিগার করবেন তা জানতে, অ্যাপগুলির জন্য স্বয়ংক্রিয় ব্যাকআপ কনফিগার করা দেখুন৷

সরাসরি শেয়ার

একটি মোবাইলের নীচের অংশ সরাসরি শেয়ার কার্যকারিতা প্রদর্শন করে

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

সরাসরি শেয়ারের লক্ষ্যগুলি সক্ষম করতে আপনাকে অবশ্যই এমন একটি শ্রেণী নির্ধারণ করতে হবে যা ChooserTargetService ক্লাসকে প্রসারিত করে। ম্যানিফেস্টে আপনার পরিষেবা ঘোষণা করুন। সেই ঘোষণার মধ্যে, SERVICE_INTERFACE অ্যাকশন ব্যবহার করে BIND_CHOOSER_TARGET_SERVICE অনুমতি এবং একটি অভিপ্রায় ফিল্টার উল্লেখ করুন।

নিম্নলিখিত উদাহরণটি দেখায় যে আপনি কীভাবে আপনার ম্যানিফেস্টে ChooserTargetService ঘোষণা করতে পারেন।

<service android:name=".ChooserTargetService"
        android:label="@string/service_name"
        android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
    <intent-filter>
        <action android:name="android.service.chooser.ChooserTargetService" />
    </intent-filter>
</service>

আপনি ChooserTargetService এ প্রকাশ করতে চান এমন প্রতিটি কার্যকলাপের জন্য, আপনার অ্যাপ ম্যানিফেস্টে "android.service.chooser.chooser_target_service" নামের একটি <meta-data> উপাদান যোগ করুন।

<activity android:name=".MyShareActivity”
        android:label="@string/share_activity_label">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
    </intent-filter>
<meta-data
        android:name="android.service.chooser.chooser_target_service"
        android:value=".ChooserTargetService" />
</activity>

ভয়েস ইন্টারঅ্যাকশন

এই রিলিজটি একটি নতুন ভয়েস ইন্টারঅ্যাকশন API প্রদান করে যা ভয়েস অ্যাকশনের সাথে, আপনাকে আপনার অ্যাপে কথোপকথনমূলক ভয়েস অভিজ্ঞতা তৈরি করতে দেয়। একটি ভয়েস অ্যাকশন আপনার কার্যকলাপকে ট্রিগার করেছে কিনা তা নির্ধারণ করতে isVoiceInteraction() পদ্ধতিতে কল করুন। যদি তাই হয়, আপনার অ্যাপটি ব্যবহারকারীর কাছ থেকে একটি ভয়েস নিশ্চিতকরণের অনুরোধ করতে, বিকল্পগুলির একটি তালিকা থেকে নির্বাচন করতে এবং আরও অনেক কিছু করতে VoiceInteractor ক্লাস ব্যবহার করতে পারে৷

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

ভয়েস অ্যাকশন বাস্তবায়ন সম্পর্কে আরও জানতে, ভয়েস অ্যাকশন ডেভেলপার সাইট দেখুন।

সহায়ক API

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

আপনার অ্যাপ FLAG_SECURE পতাকা সেট করে সহকারীর সাথে বর্তমান প্রসঙ্গ শেয়ার না করার জন্য নির্বাচন করতে পারে। প্ল্যাটফর্মটি সহকারীকে পাস করা তথ্যের মানক সেট ছাড়াও, আপনার অ্যাপ নতুন AssistContent ক্লাস ব্যবহার করে অতিরিক্ত তথ্য শেয়ার করতে পারে।

আপনার অ্যাপ থেকে সহকারীকে অতিরিক্ত প্রসঙ্গ সরবরাহ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Application.OnProvideAssistDataListener ইন্টারফেস প্রয়োগ করুন।
  2. registerOnProvideAssistDataListener() ব্যবহার করে এই শ্রোতাকে নিবন্ধন করুন।
  3. কার্যকলাপ-নির্দিষ্ট প্রাসঙ্গিক তথ্য প্রদানের জন্য, onProvideAssistData() কলব্যাক এবং ঐচ্ছিকভাবে, নতুন onProvideAssistContent() কলব্যাক ওভাররাইড করুন।

গ্রহণযোগ্য স্টোরেজ ডিভাইস

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

যদি আপনার অ্যাপ নিম্নলিখিত API বা ক্ষেত্রগুলিতে অ্যাক্সেস করে, তবে সচেতন থাকুন যে তারা যে ফাইল পাথগুলি ফেরত দেয় তা গতিশীলভাবে পরিবর্তন হবে যখন অ্যাপটি অভ্যন্তরীণ এবং বাহ্যিক স্টোরেজ ডিভাইসগুলির মধ্যে সরানো হয়৷ ফাইল পাথ তৈরি করার সময়, এটি দৃঢ়ভাবে সুপারিশ করা হয় যে আপনি সবসময় এই APIগুলিকে গতিশীলভাবে কল করুন৷ হার্ডকোডেড ফাইল পাথ ব্যবহার করবেন না বা পূর্বে তৈরি করা সম্পূর্ণ-যোগ্য ফাইল পাথগুলি বজায় রাখুন।

এই বৈশিষ্ট্যটি ডিবাগ করতে, আপনি এই কমান্ডটি চালিয়ে একটি USB অন-দ্য-গো (OTG) তারের মাধ্যমে একটি Android ডিভাইসের সাথে সংযুক্ত একটি USB ড্রাইভ গ্রহণ সক্ষম করতে পারেন:

$ adb shell sm set-force-adoptable true

বিজ্ঞপ্তি

এই রিলিজ বিজ্ঞপ্তিগুলির জন্য নিম্নলিখিত API পরিবর্তনগুলি যোগ করে:

  • নতুন INTERRUPTION_FILTER_ALARMS ফিল্টার স্তর যা নতুন অ্যালার্মের সাথে মিলে যায় শুধুমাত্র বিরক্ত করবেন না মোড।
  • নতুন CATEGORY_REMINDER বিভাগের মান যা অন্যান্য ইভেন্ট ( CATEGORY_EVENT ) এবং অ্যালার্ম ( CATEGORY_ALARM ) থেকে ব্যবহারকারী-নির্ধারিত অনুস্মারকগুলিকে আলাদা করতে ব্যবহৃত হয়৷
  • নতুন Icon ক্লাস যা আপনি setSmallIcon() এবং setLargeIcon() পদ্ধতির মাধ্যমে আপনার বিজ্ঞপ্তির সাথে সংযুক্ত করতে পারেন। একইভাবে, addAction() পদ্ধতি এখন একটি অঙ্কনযোগ্য রিসোর্স আইডির পরিবর্তে একটি Icon অবজেক্ট গ্রহণ করে।
  • নতুন getActiveNotifications() পদ্ধতি যা আপনার অ্যাপগুলিকে তাদের বিজ্ঞপ্তিগুলির মধ্যে কোনটি বর্তমানে জীবিত আছে তা খুঁজে বের করতে দেয়৷

ব্লুটুথ স্টাইলাস সমর্থন

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

স্টাইলাস বোতাম মিথস্ক্রিয়া সনাক্ত করতে MotionEvent পদ্ধতি এবং ধ্রুবক ব্যবহার করুন:

  • যদি ব্যবহারকারী আপনার অ্যাপের স্ক্রিনে একটি বোতাম দিয়ে একটি স্টাইলাস স্পর্শ করে, getTooltype() পদ্ধতিটি TOOL_TYPE_STYLUS প্রদান করে।
  • অ্যান্ড্রয়েড 6.0 (API স্তর 23) লক্ষ্য করা অ্যাপগুলির জন্য, ব্যবহারকারী যখন প্রাথমিক স্টাইলাস বোতাম টিপে তখন getButtonState() পদ্ধতিটি BUTTON_STYLUS_PRIMARY প্রদান করে৷ যদি স্টাইলাসে একটি দ্বিতীয় বোতাম থাকে, ব্যবহারকারী এটি চাপলে একই পদ্ধতিটি BUTTON_STYLUS_SECONDARY প্রদান করে। ব্যবহারকারী যদি একই সাথে উভয় বোতাম টিপে, তবে পদ্ধতিটি উভয় মানই ফেরত দেয় বা একসাথে করা হয় ( BUTTON_STYLUS_PRIMARY | BUTTON_STYLUS_SECONDARY )।
  • একটি নিম্ন প্ল্যাটফর্ম সংস্করণকে লক্ষ্য করে এমন অ্যাপগুলির জন্য, getButtonState() পদ্ধতিটি BUTTON_SECONDARY (প্রাথমিক স্টাইলাস বোতাম প্রেসের জন্য), BUTTON_TERTIARY (সেকেন্ডারি স্টাইলাস বোতাম প্রেসের জন্য), বা উভয়ই প্রদান করে।

উন্নত ব্লুটুথ লো এনার্জি স্ক্যানিং

যদি আপনার অ্যাপটি ব্লুটুথ লো এনার্জি স্ক্যানগুলি সম্পাদন করে, তাহলে সেট ScanFilter সাথে মেলে এমন একটি বিজ্ঞাপন প্যাকেট যখন প্রথম খুঁজে পায় বা দীর্ঘ সময় পরে দেখতে পায় তখন সিস্টেমটি কলব্যাকগুলিকে অবহিত করতে চান তা নির্দিষ্ট করার জন্য নতুন setCallbackType() পদ্ধতি ব্যবহার করুন৷ স্ক্যান করার এই পদ্ধতিটি আগের প্ল্যাটফর্ম সংস্করণে যা দেওয়া হয়েছে তার চেয়ে বেশি শক্তি-দক্ষ।

হটস্পট 2.0 রিলিজ 1 সমর্থন

এই রিলিজটি নেক্সাস 6 এবং নেক্সাস 9 ডিভাইসে হটস্পট 2.0 রিলিজ 1 স্পেকের জন্য সমর্থন যোগ করে। আপনার অ্যাপে Hotspot 2.0 শংসাপত্রের ব্যবস্থা করতে, WifiEnterpriseConfig ক্লাসের নতুন পদ্ধতিগুলি ব্যবহার করুন, যেমন setPlmn() এবং setRealm()WifiConfiguration অবজেক্টে, আপনি FQDN এবং providerFriendlyName ক্ষেত্রগুলি সেট করতে পারেন। নতুন isPasspointNetwork() পদ্ধতি নির্দেশ করে যদি একটি সনাক্ত করা নেটওয়ার্ক একটি Hotspot 2.0 অ্যাক্সেস পয়েন্ট প্রতিনিধিত্ব করে।

4K ডিসপ্লে মোড

প্ল্যাটফর্মটি এখন অ্যাপগুলিকে অনুরোধ করার অনুমতি দেয় যে ডিসপ্লে রেজোলিউশন সামঞ্জস্যপূর্ণ হার্ডওয়্যারে 4K রেন্ডারিং-এ আপগ্রেড করা হবে। বর্তমান ফিজিক্যাল রেজোলিউশন জিজ্ঞাসা করতে, নতুন Display.Mode API ব্যবহার করুন। যদি UI কম লজিক্যাল রেজোলিউশনে আঁকা হয় এবং একটি বড় ফিজিক্যাল রেজোলিউশনে উন্নীত করা হয়, তাহলে জেনে রাখুন যে getPhysicalWidth() পদ্ধতিটি যে ফিজিক্যাল রেজোলিউশন দেয় তা getSize() দ্বারা রিপোর্ট করা লজিক্যাল রেজোলিউশন থেকে আলাদা হতে পারে।

আপনি আপনার অ্যাপের উইন্ডোর preferredDisplayModeId বৈশিষ্ট্য সেট করে আপনার অ্যাপের ফিজিক্যাল রেজোলিউশন পরিবর্তন করার জন্য সিস্টেমকে অনুরোধ করতে পারেন। আপনি 4K ডিসপ্লে রেজোলিউশনে স্যুইচ করতে চাইলে এই বৈশিষ্ট্যটি কার্যকর। 4K ডিসপ্লে মোডে থাকাকালীন, UI মূল রেজোলিউশনে (যেমন 1080p) রেন্ডার করা অব্যাহত থাকে এবং 4K-এ উন্নীত হয়, তবে SurfaceView অবজেক্টগুলি নেটিভ রেজোলিউশনে সামগ্রী দেখাতে পারে।

থিমযোগ্য কালার স্টেটলিস্ট

Android 6.0 (API স্তর 23) এ চলমান ডিভাইসগুলির জন্য থিম বৈশিষ্ট্যগুলি এখন ColorStateList এ সমর্থিত। Resources.getColorStateList() এবং Resources.getColor() পদ্ধতি বাতিল করা হয়েছে। আপনি যদি এই APIগুলিকে কল করেন তবে পরিবর্তে নতুন Context.getColorStateList() বা Context.getColor() পদ্ধতিতে কল করুন৷ এই পদ্ধতিগুলি ContextCompat এর মাধ্যমে v4 appcompat লাইব্রেরিতেও উপলব্ধ।

অডিও বৈশিষ্ট্য

এই রিলিজটি Android-এ অডিও প্রসেসিং-এ বর্ধিতকরণ যোগ করে, যার মধ্যে রয়েছে:

  • নতুন android.media.midi API সহ MIDI প্রোটোকলের জন্য সমর্থন। MIDI ইভেন্টগুলি পাঠাতে এবং গ্রহণ করতে এই APIগুলি ব্যবহার করুন৷
  • নতুন AudioRecord.Builder এবং AudioTrack.Builder ক্লাসগুলি যথাক্রমে ডিজিটাল অডিও ক্যাপচার এবং প্লেব্যাক অবজেক্ট তৈরি করতে, এবং সিস্টেমের ডিফল্টগুলি ওভাররাইড করতে অডিও উত্স এবং সিঙ্ক বৈশিষ্ট্যগুলি কনফিগার করে৷
  • অডিও এবং ইনপুট ডিভাইস সংযুক্ত করার জন্য API হুক। এটি বিশেষভাবে উপযোগী যদি আপনার অ্যাপ ব্যবহারকারীদের Android TV এর সাথে সংযুক্ত একটি গেম কন্ট্রোলার বা রিমোট কন্ট্রোল থেকে ভয়েস অনুসন্ধান শুরু করতে দেয়। ব্যবহারকারী যখন একটি অনুসন্ধান শুরু করে তখন সিস্টেমটি নতুন onSearchRequested() কলব্যাক আহ্বান করে। ব্যবহারকারীর ইনপুট ডিভাইসে একটি অন্তর্নির্মিত মাইক্রোফোন আছে কিনা তা নির্ধারণ করতে, সেই কলব্যাক থেকে InputDevice অবজেক্টটি পুনরুদ্ধার করুন, তারপর নতুন hasMicrophone() পদ্ধতিতে কল করুন।
  • নতুন getDevices() পদ্ধতি যা আপনাকে বর্তমানে সিস্টেমের সাথে সংযুক্ত সমস্ত অডিও ডিভাইসের একটি তালিকা পুনরুদ্ধার করতে দেয়। আপনি একটি AudioDeviceCallback অবজেক্টও নিবন্ধন করতে পারেন যদি আপনি চান যে একটি অডিও ডিভাইস সংযোগ বা সংযোগ বিচ্ছিন্ন হলে সিস্টেমটি আপনার অ্যাপকে অবহিত করুক।

ভিডিও বৈশিষ্ট্য

এই রিলিজটি ভিডিও প্রসেসিং API-তে নতুন ক্ষমতা যোগ করে, যার মধ্যে রয়েছে:

  • নতুন MediaSync ক্লাস যা অ্যাপ্লিকেশনগুলিকে সিঙ্ক্রোনাসভাবে অডিও এবং ভিডিও স্ট্রীম রেন্ডার করতে সহায়তা করে। অডিও বাফারগুলি নন-ব্লকিং ফ্যাশনে জমা দেওয়া হয় এবং একটি কলব্যাকের মাধ্যমে ফেরত দেওয়া হয়। এটি গতিশীল প্লেব্যাক হার সমর্থন করে।
  • নতুন EVENT_SESSION_RECLAIMED ইভেন্ট, যা ইঙ্গিত করে যে অ্যাপ দ্বারা খোলা একটি সেশন রিসোর্স ম্যানেজার দ্বারা পুনঃ দাবি করা হয়েছে৷ যদি আপনার অ্যাপ DRM সেশন ব্যবহার করে, তাহলে আপনার এই ইভেন্টটি পরিচালনা করা উচিত এবং নিশ্চিত করা উচিত যে একটি পুনরুদ্ধার করা সেশন ব্যবহার না করা।
  • নতুন ERROR_RECLAIMED ত্রুটি কোড, যা নির্দেশ করে যে রিসোর্স ম্যানেজার কোডেক দ্বারা ব্যবহৃত মিডিয়া রিসোর্স পুনরুদ্ধার করেছে৷ এই ব্যতিক্রমের সাথে, কোডেক অবশ্যই ছেড়ে দিতে হবে, কারণ এটি টার্মিনাল অবস্থায় চলে গেছে।
  • নতুন getMaxSupportedInstances() ইন্টারফেস সমর্থিত সমবর্তী কোডেক উদাহরণগুলির সর্বাধিক সংখ্যার জন্য একটি ইঙ্গিত পেতে।
  • দ্রুত বা ধীর গতির প্লেব্যাকের জন্য মিডিয়া প্লেব্যাক রেট সেট করতে নতুন setPlaybackParams() পদ্ধতি। এটি ভিডিওর সাথে স্বয়ংক্রিয়ভাবে অডিও প্লেব্যাককে প্রসারিত করে বা গতি বাড়ায়।

ক্যামেরা বৈশিষ্ট্য

এই রিলিজে ক্যামেরার ফ্ল্যাশলাইট অ্যাক্সেস করার জন্য এবং ছবিগুলির ক্যামেরা রিপ্রসেসিংয়ের জন্য নিম্নলিখিত নতুন APIগুলি অন্তর্ভুক্ত রয়েছে:

টর্চলাইট API

যদি একটি ক্যামেরা ডিভাইসে একটি ফ্ল্যাশ ইউনিট থাকে, তাহলে আপনি ক্যামেরা ডিভাইসটি না খুলেই ফ্ল্যাশ ইউনিটের টর্চ মোড চালু বা বন্ধ করতে setTorchMode() পদ্ধতিতে কল করতে পারেন। অ্যাপটির ফ্ল্যাশ ইউনিট বা ক্যামেরা ডিভাইসের একচেটিয়া মালিকানা নেই। টর্চ মোড বন্ধ থাকে এবং যখনই ক্যামেরা ডিভাইস অনুপলব্ধ হয়ে যায়, বা যখন টর্চ চালু রাখার অন্যান্য ক্যামেরা সংস্থানগুলি অনুপলব্ধ হয়ে যায় তখন এটি অনুপলব্ধ হয়ে যায়৷ অন্যান্য অ্যাপগুলি টর্চ মোড বন্ধ করতে setTorchMode() কল করতে পারে। টর্চ মোড চালু করা শেষ অ্যাপটি বন্ধ হয়ে গেলে, টর্চ মোড বন্ধ হয়ে যায়।

আপনি registerTorchCallback() পদ্ধতিতে কল করে টর্চ মোড স্থিতি সম্পর্কে অবহিত হওয়ার জন্য একটি কলব্যাক নিবন্ধন করতে পারেন। কলব্যাকটি প্রথমবার নিবন্ধিত হওয়ার সাথে সাথে ফ্ল্যাশ ইউনিট সহ বর্তমানে পরিচিত সমস্ত ক্যামেরা ডিভাইসের টর্চ মোড স্ট্যাটাস সহ কল ​​করা হয়। যদি টর্চ মোড সফলভাবে চালু বা বন্ধ করা হয়, onTorchModeChanged() পদ্ধতিটি চালু করা হয়।

API পুনরায় প্রক্রিয়াকরণ

Camera2 API YUV এবং ব্যক্তিগত অস্বচ্ছ বিন্যাস চিত্র পুনঃপ্রসেসিং সমর্থন করার জন্য প্রসারিত করা হয়েছে। এই রিপ্রসেসিং ক্ষমতা উপলব্ধ কিনা তা নির্ধারণ করতে, getCameraCharacteristics() কল করুন এবং REPROCESS_MAX_CAPTURE_STALL কী চেক করুন৷ যদি কোনো ডিভাইস রিপ্রসেসিং সমর্থন করে, তাহলে আপনি createReprocessableCaptureSession() কল করে একটি রিপ্রসেসযোগ্য ক্যামেরা ক্যাপচার সেশন তৈরি করতে পারেন এবং ইনপুট বাফার রিপ্রসেসিংয়ের জন্য অনুরোধ তৈরি করতে পারেন।

ক্যামেরা রিপ্রসেসিং ইনপুটে ইনপুট বাফার ফ্লো সংযোগ করতে ImageWriter ক্লাস ব্যবহার করুন। একটি খালি বাফার পেতে, এই প্রোগ্রামিং মডেল অনুসরণ করুন:

  1. dequeueInputImage() পদ্ধতিতে কল করুন।
  2. ইনপুট বাফারে ডেটা পূরণ করুন।
  3. queueInputImage() পদ্ধতিতে কল করে ক্যামেরায় বাফার পাঠান।

আপনি যদি একটি PRIVATE চিত্রের সাথে একটি ImageWriter অবজেক্ট ব্যবহার করেন তবে আপনার অ্যাপটি সরাসরি চিত্র ডেটা অ্যাক্সেস করতে পারবে না। পরিবর্তে, কোনো বাফার কপি ছাড়াই queueInputImage() পদ্ধতিতে কল করে সরাসরি ImageWriter PRIVATE ছবি পাস করুন।

ImageReader ক্লাস এখন PRIVATE ফরম্যাট ইমেজ স্ট্রীম সমর্থন করে। এই সমর্থনটি আপনার অ্যাপকে ImageReader আউটপুট চিত্রগুলির একটি বৃত্তাকার চিত্র সারি বজায় রাখতে, এক বা একাধিক ছবি নির্বাচন করতে এবং ক্যামেরা পুনঃপ্রসেসিংয়ের জন্য ImageWriter পাঠাতে অনুমতি দেয়।

কাজের জন্য অ্যান্ড্রয়েড বৈশিষ্ট্য

এই রিলিজে Android for Work এর জন্য নিম্নলিখিত নতুন API গুলি অন্তর্ভুক্ত রয়েছে:

  • কর্পোরেট-মালিকানাধীন, একক-ব্যবহারের ডিভাইসগুলির জন্য উন্নত নিয়ন্ত্রণ: কর্পোরেট-মালিকানাধীন, একক-ব্যবহার (COSU) ডিভাইসগুলির ব্যবস্থাপনা উন্নত করতে ডিভাইসের মালিক এখন নিম্নলিখিত সেটিংস নিয়ন্ত্রণ করতে পারেন:
    • setKeyguardDisabled() পদ্ধতিতে কীগার্ড নিষ্ক্রিয় বা পুনরায় সক্রিয় করুন।
    • setStatusBarDisabled() পদ্ধতিতে স্ট্যাটাস বার (দ্রুত সেটিংস, বিজ্ঞপ্তি, এবং নেভিগেশন সোয়াইপ-আপ অঙ্গভঙ্গি যা Google Now চালু করে) অক্ষম বা পুনরায়-সক্ষম করুন৷
    • UserManager ধ্রুবক DISALLOW_SAFE_BOOT দিয়ে নিরাপদ বুট নিষ্ক্রিয় বা পুনরায় সক্ষম করুন।
    • STAY_ON_WHILE_PLUGGED_IN ধ্রুবকের সাথে প্লাগ ইন করার সময় স্ক্রীনটিকে বন্ধ হওয়া থেকে আটকান৷
  • ডিভাইস মালিকের দ্বারা অ্যাপগুলির নীরব ইনস্টল এবং আনইনস্টল: একজন ডিভাইস মালিক এখন Google Play for Work থেকে স্বতন্ত্রভাবে PackageInstaller API ব্যবহার করে অ্যাপ্লিকেশনগুলিকে নীরবে ইনস্টল এবং আনইনস্টল করতে পারেন৷ আপনি এখন এমন একটি ডিভাইস মালিকের মাধ্যমে ডিভাইসগুলির ব্যবস্থা করতে পারেন যা ব্যবহারকারীর ইন্টারঅ্যাকশন ছাড়াই অ্যাপগুলি আনয়ন এবং ইনস্টল করে৷ এই বৈশিষ্ট্যটি Google অ্যাকাউন্ট সক্রিয় না করেই কিয়স্ক বা এই জাতীয় অন্যান্য ডিভাইসগুলির এক-স্পর্শ ব্যবস্থা সক্ষম করার জন্য কার্যকর।
  • নীরব এন্টারপ্রাইজ শংসাপত্র অ্যাক্সেস: যখন একটি অ্যাপ কল করে choosePrivateKeyAlias() , ব্যবহারকারীকে একটি শংসাপত্র নির্বাচন করার জন্য অনুরোধ জানানোর আগে, প্রোফাইল বা ডিভাইস মালিক এখন অনুরোধকারী অ্যাপ্লিকেশনটিকে নীরবে উপনাম সরবরাহ করতে onChoosePrivateKeyAlias() পদ্ধতিতে কল করতে পারেন। এই বৈশিষ্ট্যটি আপনাকে ব্যবহারকারীর ইন্টারঅ্যাকশন ছাড়াই সার্টিফিকেটগুলিতে পরিচালিত অ্যাপগুলিকে অ্যাক্সেস দিতে দেয়৷
  • সিস্টেম আপডেট স্বয়ংক্রিয়ভাবে গ্রহণ. setSystemUpdatePolicy() এর সাথে একটি সিস্টেম আপডেট নীতি সেট করার মাধ্যমে, একজন ডিভাইসের মালিক এখন একটি সিস্টেম আপডেট স্বয়ংক্রিয়ভাবে গ্রহণ করতে পারেন, উদাহরণস্বরূপ, একটি কিয়স্ক ডিভাইসের ক্ষেত্রে, অথবা আপডেটটি স্থগিত রাখতে পারেন এবং 30 দিন পর্যন্ত ব্যবহারকারীর দ্বারা এটি গ্রহণ করা প্রতিরোধ করতে পারেন। . তদুপরি, একজন প্রশাসক একটি দৈনিক সময় উইন্ডো সেট করতে পারেন যেখানে একটি আপডেট নিতে হবে, উদাহরণ স্বরূপ যখন একটি কিয়স্ক ডিভাইস ব্যবহার করা হয় না তখন ঘন্টার মধ্যে। যখন একটি সিস্টেম আপডেট উপলব্ধ থাকে, তখন সিস্টেমটি পরীক্ষা করে যে ডিভাইস নীতি নিয়ন্ত্রক অ্যাপটি একটি সিস্টেম আপডেট নীতি সেট করেছে কিনা এবং সেই অনুযায়ী আচরণ করে।
  • অর্পিত শংসাপত্র ইনস্টলেশন: একটি প্রোফাইল বা ডিভাইসের মালিক এখন একটি তৃতীয় পক্ষের অ্যাপকে এই DevicePolicyManager শংসাপত্র ব্যবস্থাপনা APIগুলিকে কল করার ক্ষমতা প্রদান করতে পারেন:
  • Android for Work এর মধ্যে কাজের স্থিতি বিজ্ঞপ্তি বৈশিষ্ট্য প্রদর্শন করছে মোবাইল৷
  • ডেটা ব্যবহার ট্র্যাকিং। একটি প্রোফাইল বা ডিভাইসের মালিক এখন নতুন NetworkStatsManager পদ্ধতি ব্যবহার করে সেটিংস > ডেটা ব্যবহারে দৃশ্যমান ডেটা ব্যবহারের পরিসংখ্যানের জন্য অনুসন্ধান করতে পারেন। প্রোফাইল মালিকরা স্বয়ংক্রিয়ভাবে তাদের পরিচালনা করা প্রোফাইলে ডেটা জিজ্ঞাসা করার অনুমতি দেওয়া হয়, যখন ডিভাইস মালিকরা পরিচালিত প্রাথমিক ব্যবহারকারীর ব্যবহার ডেটাতে অ্যাক্সেস পান।
  • রানটাইম অনুমতি ব্যবস্থাপনা:

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

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