কী কী পরিবর্তন হচ্ছে
যেসব অ্যাপ আসন্ন Android রিলিজকে টার্গেট করে, সেগুলি WRITE_CONTACTS অনুমতির মাধ্যমে পরিচিতিতে সরাসরি লিখতে পারবে না। পরিবর্তে, আপনি স্ট্যান্ডার্ড পরিচিতি ইনটেন্ট (ACTION_INSERT, ACTION_EDIT এবং ACTION_INSERT_OR_EDIT) ব্যবহার করতে পারেন। সম্পূর্ণ রেফারেন্স প্রয়োগের জন্য, কীভাবে ইনটেন্ট ব্যবহার করে পরিচিতি পরিবর্তন করবেন সেই বিষয়ে ডেভেলপার নির্দেশিকা দেখুন।
Android-এর আসন্ন রিলিজ চলছে এমন ডিভাইসে, এই তিনটি পরিচিতি ইন্টেন্ট একইভাবে কাজ করবে এবং কোনও অনুমতির প্রয়োজন হবে না। আপনার অ্যাপ যদি আসন্ন Android রিলিজ বা তার পরের ভার্সনকে টার্গেট করে এবং সরাসরি পরিচিতিতে লেখার চেষ্টা করে, তাহলে সেই লেখার অনুরোধ প্রত্যাখ্যান করা হবে এবং এর ফলে SecurityException বা অনুমতি প্রত্যাখ্যান করা হবে। যেসব অ্যাপের ছোট সেটের জন্য পরিচিতি তৈরি ও পরিবর্তন করতে ব্রড অ্যাক্সেসের প্রয়োজন হয়, সেগুলির জন্য Android 17 QPR2 (Q4 2026)-এ নতুন বিশেষ অ্যাপ অ্যাক্সেস অনুমতি, MANAGE_CONTACTS, আসছে। Google Play আজ MANAGE_CONTACTS সহ পরিচিতি অ্যাক্সেসের জন্য আপডেট করা নির্দেশিকা প্রকাশ করছে।
আমরা কেন এটি করছি
বর্তমানে, আপনার অ্যাপে যদি একটিও পরিচিতি সেভ করতে হয়, তাহলে আপনি হয়ত WRITE_CONTACTS-এর জন্য অনুরোধ করছেন। কিন্তু সেই অনুমতি ব্যাপক অ্যাক্সেস প্রদান করে, যা কোনও অ্যাপকে ব্যাকগ্রাউন্ডে ডিভাইস জুড়ে পরিচিতিতে ব্যাপক পরিবর্তন করার অনুমতি দেয়, এমনকি ব্যবহারকারীর ইন্টারঅ্যাকশন ছাড়াই। বেশিরভাগ অ্যাপের ক্ষেত্রে এত বেশি অনুমতির প্রয়োজন হয় না।
বিকল্প থাকলেও, আমরা আপনার কাছ থেকে শুনেছি যে ইকোসিস্টেম জুড়ে সেগুলিকে আরও মানসম্মত হতে হবে। আগে, এক ডিভাইস থেকে অন্য ডিভাইসে কন্ট্যাক্ট ইনটেন্ট আলাদাভাবে কাজ করত। কিছু এডিটর আপনার পাস করা ডেটা বাদ দিয়েছে, যেমন পরিচিতির ফটো। কিছু ডিভাইসে, 'ফিরে যান' বোতামটি ব্যবহারকারীর অজান্তেই পরিচিতি সেভ করে ফেলে অথবা "নতুন পরিচিতি তৈরি করুন" বিকল্পটি খুঁজে পাওয়া কঠিন ছিল। তাই অনুমতি চাওয়াটাই ছিল যুক্তিযুক্ত। আমরা Android-এর আসন্ন ভার্সনে এইসব সমস্যার সমাধান করছি এবং এটি রান করছে এমন ডিভাইসের ক্ষেত্রে একই স্ট্যান্ডার্ড মেনে চলার প্রয়োজন হবে।
পরিবর্তে কী ব্যবহার করবেন
পরিচিতি যোগ বা এডিট করা: পরিচিতি ইনটেন্ট ব্যবহার করা
আপনি যখন এইসব ইনটেন্ট ব্যবহার করেন - ACTION_INSERT, ACTION_EDIT এবং ACTION_INSERT_OR_EDIT - সিস্টেমটি একটি পরিষ্কার, স্ট্যান্ডার্ডাইজড কন্ট্যাক্ট এডিটর অভিজ্ঞতা উপস্থাপন করে ভারী কাজগুলি পরিচালনা করে। এটি নতুন এন্ট্রির জন্য একটি দ্রুত হাফ-শিট ফর্ম খোলে, অথবা ব্যবহারকারীকে সহজেই সার্চ করতে এবং আগে থেকে থাকা পরিচিতিতে তথ্য যোগ করতে দেয়। ব্যবহারকারীরা আরও বিবরণ পূরণ করার জন্য এটিকে নির্বিঘ্নে একটি ফুল-পেজ এডিটরে প্রসারিত করতে পারেন, আপনার অ্যাপের সরাসরি রাইট পার্মিশনের প্রয়োজন ছাড়াই। নিচে সম্ভাব্য UX মক দেখুন:
ছবি ১: নতুন পরিচিতি তৈরি করুন *UX ফাইনাল নয়*
ছবি ২: আগে থেকে থাকা পরিচিতিতে তথ্য যোগ করুন *UX ফাইনাল নয়*
মনে রাখবেন: বিভিন্ন ডিভাইস প্রস্তুতকারক তাদের OS স্টাইলের সাথে ম্যাচ করার জন্য ব্যবহারকারীর অভিজ্ঞতা পরিবর্তন করতে পারে, তবে আচরণ একই থাকবে।
আপনার ইনটেন্টের পাশাপাশি, অতিরিক্ত হিসেবে পরিচিত ঐচ্ছিক ডেটা পেলোড পাস করার মাধ্যমে আপনি ক্রিয়েশন প্রসেস আরও স্ট্রিমলাইন করতে পারবেন:
EXTRA_ACCOUNTকোন অ্যাকাউন্টে পরিচিতি সেভ করা হবে তা সাজেস্ট করে, আপনার অ্যাপ পরিচিতি সিঙ্ক করলে এটি সাহায্য করে। এই অতিরিক্ত সুবিধা আগে থেকেই ছিল, তবে ডিভাইস অনুযায়ী সহায়তা আলাদা ছিল। আসন্ন Android রিলিজ থেকে শুরু করে, সমস্ত ডিভাইস জুড়ে সহায়তা স্ট্যান্ডার্ডাইজ করা হয়েছে।EXTRA_PHOTO_URIপরিচিতির ছবি আগে থেকে পূরণ করার জন্য একটি ফটো পাস করে। এডিটর আপনার জন্য URI রিড পার্মিশন ম্যানেজ করে। এটি আসন্ন Android রিলিজে নতুন এবং ইকোসিস্টেম জুড়ে কাজ করবে।
আগে: সরাসরি
// Requires android.permission.WRITE_CONTACTS fun saveContactDirectly(context: Context, name: String, phone: String, account: Account) { val ops = arrayListOf( ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, account.type) .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, account.name) .build(), ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue( ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE ) .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name) .build(), ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue( ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE ) .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone) .build() ) context.contentResolver.applyBatch(ContactsContract.AUTHORITY, ops) }
| পরে: পরিচিতি এডিটর খোলা (কোনও অনুমতির প্রয়োজন নেই।)
fun saveContactWithEditor( context: Context, name: String, phone: String, account: Account, photoUri: Uri ) { val intent = Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI).apply { putExtra(ContactsContract.Intents.Insert.NAME, name) putExtra(ContactsContract.Intents.Insert.PHONE, phone) // Suggest which account the contact is saved to putExtra(ContactsContract.Intents.Insert.EXTRA_ACCOUNT, account) // New in the upcoming Android release: pre-fill the contact photo putExtra(ContactsContract.Intents.Insert.EXTRA_PHOTO_URI, photoUri) clipData = ClipData.newRawUri("", photoUri) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) } context.startActivity(intent) }
|
আগে: আগে থেকে থাকা পরিচিতি সরাসরি আপডেট করা
// Requires android.permission.WRITE_CONTACTS fun addPhoneDirectly(context: Context, rawContactId: Long, phone: String) { val values = ContentValues().apply { put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId) put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) put(ContactsContract.CommonDataKinds.Phone.NUMBER, phone) } context.contentResolver.insert(ContactsContract.Data.CONTENT_URI, values) } | পরে: ব্যবহারকারীকে আপডেট করার জন্য কোনও পরিচিতি বেছে নিতে দেওয়া অথবা নতুন একটি তৈরি করা fun addPhoneWithEditor(context: Context, phone: String) { val intent = Intent(Intent.ACTION_INSERT_OR_EDIT).apply { type = ContactsContract.Contacts.CONTENT_ITEM_TYPE putExtra(ContactsContract.Intents.Insert.PHONE, phone) } context.startActivity(intent) } কোন পরিচিতি আপডেট করতে হবে তা আপনি আগে থেকেই জানলে, সেই পরিচিতির URI-এর সাথে fun editKnownContact(context: Context, contactUri: Uri, phone: String) { val intent = Intent(Intent.ACTION_EDIT, contactUri).apply { putExtra(ContactsContract.Intents.Insert.PHONE, phone) } context.startActivity(intent) }
|
পরিচিতি বেছে নিন: পরিচিতি পিকার ব্যবহার করুন
ব্যবহারকারীর বেছে নেওয়া পরিচিতিগুলি শুধু পড়তে চাইলে, পরিচিতি পিকার ব্যবহার করুন, যা Android 17 থেকে উপলভ্য। এটির জন্য কোনও অনুমতির প্রয়োজন নেই।
কলিং এবং মেসেজিং অ্যাপ: People Directory ব্যবহার করুন
কিছু অ্যাপ পরিচিতিতে "এর মাধ্যমে কল করুন…" বা "এর মাধ্যমে মেসেজ করুন…" অ্যাকশন যোগ করে যাতে লোকজন ফোন বা পরিচিতি অ্যাপ থেকে কল বা চ্যাট শুরু করতে পারেন। আপনার অ্যাপ যদি ব্যবহারকারীর পরিচিতিতে অতিরিক্ত এন্ট্রি লিখে আজ এটি করে, তাহলে People Directory-তে যান, যা Android QPR2 (Q4 2026)-এ আসছে। এটি একটি নতুন সিস্টেম ডিরেক্টরি যেখানে আপনার অ্যাপ প্রকাশ করে যে কীভাবে লোকজন আপনার অ্যাপে একে অপরের সাথে যোগাযোগ করতে পারে, ব্যবহারকারীর পরিচিতি এডিট না করেই।
অ্যাপ কীভাবে মাইগ্রেট করতে পারে তার উদাহরণ
এই বিকল্পগুলি বাস্তবে কীভাবে কাজ করে তা দেখতে, বিভিন্ন ধরনের অ্যাপ কীভাবে পরিচিতি অ্যাক্সেস করতে পারে তার কয়েকটি উদাহরণ এখানে দেওয়া হল:
| অ্যাপের ধরনের উদাহরণ (এক্সক্লুসিভ নয়)। | মাইগ্রেশনের জন্য সাজেস্ট করা পাথ |
| সোশ্যাল, P2P পেমেন্ট ও রাইড-শেয়ারিং অ্যাপ | আপনার অ্যাপ ব্যবহারকারীদের বন্ধু খুঁজতে, বিল স্প্লিট করতে বা ট্রিপের স্ট্যাটাস শেয়ার করতে দিলে, আপনার পরিচিতি সম্পর্কিত অনুমতির কোনও প্রয়োজন নেই। একবার পরিচিতি বেছে নেওয়ার জন্য পরিচিতি পিকার ব্যবহার করুন এবং কোনও ব্যবহারকারী প্রোফাইলে "পরিচিতিতে সেভ করুন" বিকল্পে ট্যাপ করলে EXTRA_PHOTO_URI-এর সাথে ACTION_INSERT লঞ্চ করুন। |
| বিজনেস কার্ড স্ক্যানার ও ইভেন্ট নেটওয়ার্কিং অ্যাপ | আপনার অ্যাপ যদি কোনও ব্যাজ বা QR কোড স্ক্যান করে এবং নতুন পরিচিতি সেভ করে – অথবা আগে থেকে থাকা সহকর্মীর এন্ট্রিতে অফিসের ফোন নম্বর যোগ করে – তাহলে ACTION_INSERT বা ACTION_INSERT_OR_EDIT ব্যবহার করুন। স্ট্যান্ডার্ডাইজড হাফ-শিট এডিটর পার্স করা ফিল্ড (নাম, কোম্পানি, ফোন, ইমেল ও ফটো) আগে থেকে পূরণ করে দেয় যাতে ব্যবহারকারী ব্যাকগ্রাউন্ড সংক্রান্ত অনুমতি না দিয়েই এক ট্যাপে যাচাই ও সেভ করতে পারেন। |
| VoIP কলিং ও মেসেজিং অ্যাপ | ব্যবহারকারীর অ্যাড্রেস বুকে কাস্টম "…এর সাথে কল করুন" বা "…এর সাথে মেসেজ করুন" সারি যোগ করার জন্য WRITE_CONTACTS-কে অনুরোধ করার পরিবর্তে, People Directory-এর মাধ্যমে রিচেবিলিটি মেটাডেটা প্রকাশ করুন এবং ব্যবহারকারীরা চ্যাট থ্রেড থেকে নতুন পরিচিতি যোগ করলে ACTION_INSERT ব্যবহার করুন। |
| Enterprise CRM ও Cloud Sync অ্যাপ | আপনার অ্যাপ যদি ক্লাউড বা এন্টারপ্রাইজ অ্যাকাউন্টের সাথে ব্যাকগ্রাউন্ডে একটানা, দুই-মুখী পরিচিতি সিঙ্ক করে – যেখানে প্রতিটি রেকর্ডের জন্য ইনটেন্ট UI সহ ব্যবহারকারীকে প্রম্পট করা সম্ভব নয় – তাহলে আপনার অ্যাপ MANAGE_CONTACTS ঘোষণা করার জন্য উপযুক্ত |
পরিবর্তন চেক করা
- এডিটরে কাস্টম ডেটার ধরন কাজ করে না। আপনি যদি স্ট্যান্ডার্ড
ContactsContract.CommonDataKindsপ্রকার ছাড়া অন্য MIME প্রকার সহInsert.DATAসারি পাস করেন, তাহলে সেই MIME প্রকারগুলি এডিটর দ্বারা নীরবে উপেক্ষা করা হবে। SHOW_OR_CREATE_CONTACTসিস্টেম এডিটর দ্বারা ম্যানেজ করা হয় না। ডিভাইসের সাথে আসা পরিচিতি অ্যাপ এখনও এটি ম্যানেজ করতে পারে। বিভিন্ন ডিভাইস জুড়ে একই ধরনের আচরণ পেতে,ACTION_INSERT_OR_EDITব্যবহার করুন।- ডিফল্ট হিসেবে রাইট অপারেশন ব্যর্থ হয়। আপনি আসন্ন Android রিলিজ টার্গেট করলে,
MANAGE_CONTACTSছাড়া সরাসরি কোনও কিছু লিখলেSecurityException or permission denial-এ ফলাফল দেখাবে। এটি পরীক্ষা করুন।
আমার কি MANAGE_CONTACTSপ্রয়োজন?
সম্ভবত নয়। ব্যবহারকারীর অনুরোধে আপনার অ্যাপ পরিচিতি সেভ বা এডিট করলে, উপরের ইনটেন্ট আপনাকে কভার করে, কোনও অনুমতি এবং Play Console ঘোষণার প্রয়োজন নেই।
MANAGE_CONTACTS হল এমন অ্যাপের জন্য যার মূল উদ্দেশ্য হল পরিচিতি ম্যানেজ করা, যেখানে ইনটেন্ট যথেষ্ট নয়। যেমন:
| আপনার অ্যাপ… | MANAGE_CONTACTS প্রয়োজন? |
| চ্যাট, বিজনেস কার্ড বা অর্ডার থেকে কোনও পরিচিতি সেভ করে। | না, ACTION_INSERT ব্যবহার করুন |
| আগে থেকেই রয়েছে এমন পরিচিতিতে নম্বর বা ইমেল যোগ করে। | না, ACTION_INSERT_OR_EDIT বা ACTION_EDIT ব্যবহার করুন |
| ব্যবহারকারীদের আমন্ত্রণ জানাতে, শেয়ার করতে বা পেমেন্ট করতে পরিচিতি বেছে নিতে দেয়। | না, পরিচিতি পিকার ব্যবহার করুন |
| পরিচিতিতে কল বা মেসেজ অ্যাকশন যোগ করে। | না, People Directory ব্যবহার করুন |
| এটির নিজস্ব ব্র্যান্ডেড পরিচিতি এডিটিং স্ক্রিন আছে। | না, শুধু কাস্টম ইন্টারফেস থাকলেই হবে না |
| এটি একটি ডেডিকেটেড পরিচিতি ম্যানেজার বা ডায়ালার রিপ্লেসমেন্ট অ্যাপ। | সম্ভবত হ্যাঁ |
| এটি একটি কলার আইডি ও স্প্যাম থেকে সুরক্ষা অ্যাপ যা অ্যাড্রেস বুক এন্ট্রিগুলি ব্যাপকভাবে আপডেট করে। | সম্ভবত হ্যাঁ |
| ব্যাকগ্রাউন্ডে এন্টারপ্রাইজ বা ক্লাউড অ্যাকাউন্টের সাথে পরিচিতি সিঙ্ক করে। | সম্ভবত হ্যাঁ |
| একসাথে অনেক পরিচিতির ব্যাক-আপ/রিস্টোর বা এক ফোন থেকে অন্য ফোনে ট্রান্সফার করে। | সম্ভবত হ্যাঁ |
| আলাদা আলাদা পরিচিতির জন্য কাস্টম রিংটোন সেট করে। | সম্ভবত হ্যাঁ |
এটি কীভাবে কাজ করে:
MANAGE_CONTACTSহল একটি বিশেষ অ্যাপ অ্যাক্সেস করার অনুমতি। এটি রানটাইম ডায়ালগ নয়। ব্যবহারকারীরা সেটিংস > বিশেষ অ্যাপ অ্যাক্সেস > পরিচিতি ম্যানেজ করুন বিকল্প থেকে এটি চালু করেন।
// Opens Settings > Apps > Special app access > Manage contacts val intent = Intent(Settings.ACTION_MANAGE_CONTACTS, Uri.fromParts("package", packageName, null)) context.startActivity(intent)
- এর মধ্যে পরিচিতি, অ্যাকাউন্ট এবং People Directory ডেটা পড়া, যোগ করা, এডিট করা এবং মুছে ফেলা অন্তর্ভুক্ত। আপনাকে
READ_CONTACTS-এর জন্য অনুরোধ করতে হবে না। MANAGE_CONTACTSব্যবহার করে Google Play-তে প্রকাশ করতে, আপনার অ্যাপের মূল কার্যকারিতার জন্য ইনটেন্ট কেন যথেষ্ট নয় তা ব্যাখ্যা করে Play Console-এ একটি ঘোষণা জমা দিন।
মাইগ্রেশনের ধাপ
- আপনার পরিচিতি কী লিখেছেন তা খুঁজুন। আপনার কোডে
WRITE_CONTACTS,ContactsContract.RawContacts.CONTENT_URI,ContactsContract.Data.CONTENT_URIএবংapplyBatch(ContactsContract.AUTHORITY, …)খুঁজুন। - ব্যবহারকারীর দ্বারা পরিচালিত প্রতিটি রাইটকে একটি ইনটেন্ট দিয়ে প্রতিস্থাপন করুন: নতুন পরিচিতির জন্য
ACTION_INSERTএবং আপডেটের জন্যACTION_EDITবাACTION_INSERT_OR_EDIT। Insert.DATA-এ শুধুমাত্র স্ট্যান্ডার্ড ডেটার ধরন ব্যবহার করুন। কল বা মেসেজ অ্যাকশন পিপল ডিরেক্টরিতে সরান।- আপনার সত্যিই
MANAGE_CONTACTSপ্রয়োজন কিনা তা উপরের টেবিল ব্যবহার করে সিদ্ধান্ত নিন। আপনি যদি তা করেন, তাহলে Play Console-এ ঘোষণা করার জন্য পরিকল্পনা করুন। - কোনও কোড পাথের প্রয়োজন না হলে আপনার ম্যানিফেস্ট থেকে সরিয়ে দিন
WRITE_CONTACTS।
টাইমলাইন
| কখন | কী হয় |
| ২১ অক্টোবর, ২০২৬ | Google Play MANAGE_CONTACTS নীতি ঘোষণা করেছে |
| ২০২৬ (Android 17 ত্রৈমাসিক প্ল্যাটফর্ম রিলিজ ২) | MANAGE_CONTACTS-এর অনুমতি উপলভ্য হয় |
| ২০২৭ (আসন্ন Android রিলিজ) | আসন্ন Android রিলিজকে টার্গেট করা অ্যাপে WRITE_CONTACTS আর রাইট অ্যাক্সেস দেয় না। বিভিন্ন ডিভাইস জুড়ে পরিচিতি ইনটেন্ট স্ট্যান্ডার্ডাইজ করা হয়েছে |
| ২০২৭, আসন্ন Android রিলিজের আগে নয় | Play Console-এ MANAGE_CONTACTS ব্যবহার করা অ্যাপকে ঘোষণা জমা দিতে বলা হয় |
| ২০২৭, আসন্ন Android রিলিজের আগে নয় | Play-এর নীতি মেনে চলা আবশ্যক |
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
- এটি কি প্রতিটি অ্যাপকে প্রভাবিত করে?
WRITE_CONTACTSডেপ্রিকেশন সংক্রান্ত পরিবর্তন শুধুমাত্র সেইসব অ্যাপের ক্ষেত্রে প্রযোজ্য যেগুলি আসন্ন Android রিলিজ এবং তার পরের ভার্সনকে টার্গেট করে। পুরনো ভার্সনকে টার্গেট করা অ্যাপগুলি তাদের বর্তমান আচরণ বজায় রাখে, তবে নতুন স্ট্যান্ডার্ডাইজড কন্ট্যাক্ট এডিটর নতুন OS-এ চলা সমস্ত অ্যাপের জন্য উপলভ্য হবে, তাদের টার্গেট SDK যাই হোক না কেন।
- আমার অ্যাপ কি ইনটেন্ট সহ পরিচিতি মুছে দিতে পারে?
- না। পরিচিতি মুছে ফেলার কোনও উদ্দেশ্য নেই। ব্যবহারকারীরা তাদের পরিচিতি অ্যাপে পরিচিতি মুছে দেন।
MANAGE_CONTACTSসহ অ্যাপ সরাসরি পরিচিতি মুছে দিতে পারে।
- না। পরিচিতি মুছে ফেলার কোনও উদ্দেশ্য নেই। ব্যবহারকারীরা তাদের পরিচিতি অ্যাপে পরিচিতি মুছে দেন।
- আমার কাছে আগে থেকেই পরিচিতি এডিট করার স্ক্রিন আছে। আমি কি এটি রাখতে পারি?
- আপনার অ্যাপ
MANAGE_CONTACTS-এর জন্য উপযুক্ত হলে তবেই। কাস্টম ডিজাইন রাখতে চাওয়ার বিষয়টি উপযুক্ত কারণ হিসেবে বিবেচিত হয় না।
- আপনার অ্যাপ
MANAGE_CONTACTSকি READ_CONTACTS-এর পরিবর্তে ব্যবহার করা হয়?MANAGE_CONTACTS-এ পড়ার অ্যাক্সেস অন্তর্ভুক্ত থাকে, তাই আপনাকে দুটির জন্য অনুরোধ করতে হবে না, তবে অনেক অ্যাপREAD_CONTACTS-এর জন্য উপযুক্ত যেগুলির পরিচিতি পরিবর্তন করার একেবারেই প্রয়োজন নেই। এইসব অ্যাপREAD_CONTACTS-এর জন্য অনুরোধ করা চালিয়ে যেতে পারে।
- আমার ব্যবহারকারীরা পুরনো Android ভার্সন ব্যবহার করলে কী হবে?
- পরিচিতি ইনটেন্ট পুরনো ভার্সনেও কাজ করে, ডিভাইসের পরিচিতি অ্যাপ এটি ম্যানেজ করে। বেশিরভাগ অ্যাপ এইসব ইনটেন্ট ব্যবহার করে সব ডিভাইসে ভালভাবে কাজ করবে। আপনার অ্যাপ যদি কোনও নির্দিষ্ট ধারাবাহিকতা সংক্রান্ত সমস্যার দ্বারা প্রভাবিত হয় যা শুধুমাত্র লেটেস্ট ভার্সনে সমাধান করা হয়, তাহলে আপনি উপযুক্ত maxSdkVersion সহ আপনার ম্যানিফেস্ট স্কোপে
WRITE_CONTACTSঅনুমতি রাখতে পারেন।
- পরিচিতি ইনটেন্ট পুরনো ভার্সনেও কাজ করে, ডিভাইসের পরিচিতি অ্যাপ এটি ম্যানেজ করে। বেশিরভাগ অ্যাপ এইসব ইনটেন্ট ব্যবহার করে সব ডিভাইসে ভালভাবে কাজ করবে। আপনার অ্যাপ যদি কোনও নির্দিষ্ট ধারাবাহিকতা সংক্রান্ত সমস্যার দ্বারা প্রভাবিত হয় যা শুধুমাত্র লেটেস্ট ভার্সনে সমাধান করা হয়, তাহলে আপনি উপযুক্ত maxSdkVersion সহ আপনার ম্যানিফেস্ট স্কোপে
-
প্রোডাক্ট সংক্রান্ত খবরGoogle I/O ২০২৬-এ, আমরা Android-কে অপারেটিং সিস্টেম থেকে ইন্টেলিজেন্স সিস্টেমে পরিবর্তন করার কথা ঘোষণা করেছি। এছাড়াও, আমরা দেখিয়েছি যে কীভাবে আপনি সিস্টেমের সাথে নেটিভভাবে ইন্টেলিজেন্ট অভিজ্ঞতা তৈরি করতে এবং আপনার অ্যাপে Google-এর AI-এর ক্ষমতা নিয়ে আসতে পারবেন।
Jingyu Shi • পড়তে ২ মিনিট লাগবে -
প্রোডাক্ট সংক্রান্ত খবরএই বছর Google I/O-তে আমরা পুনরাবৃত্তিমূলক পরিবর্তনের বাইরে গিয়ে অ্যাপ কীভাবে তৈরি করা হয় তার মৌলিক পরিবর্তনের দিকে এগিয়ে চলেছি। আমাদের নতুন টুলগুলি এজেন্টিক যুগের জন্য তৈরি করা হয়েছে, যার মধ্যে এমন ফিচার রয়েছে যা Android ডেভেলপার হিসেবে আপনার প্রোডাক্টিভিটি বাড়ায় এবং আপনার কোডবেসে ডিপ্লয় করা AI এজেন্টগুলিকে সুপারচার্জ করে।
Matthew Warner • ৮ মিনিট লাগবে -
প্রোডাক্ট সংক্রান্ত খবরআজ The Android Show-তে ঘোষণা করা হয়েছে যে, Android অপারেটিং সিস্টেম থেকে ইন্টেলিজেন্স সিস্টেমে পরিবর্তিত হচ্ছে, যা আপনার অ্যাপের সাথে এনগেজমেন্টের আরও সুযোগ তৈরি করছে।
Matthew McCullough • ৪ মিনিট লাগবে পড়তে
আপনার ইনবক্সে প্রতি সপ্তাহে Android ডেভেলপমেন্ট সংক্রান্ত লেটেস্ট ইনসাইট পান।