ফ্রেমওয়ার্কের মধ্যে আপনার সিঙ্ক অ্যাডাপটর উপাদান প্লাগ করতে আপনার মেটাডেটা সহকারে ফ্রেমওয়ার্ক সরবরাহ করা যা উপাদান আলোচনা করে এবং অতিরিক্ত ফ্ল্যাগস প্রদান করে। আপনি আপনার সিঙ্ক অ্যাডাপটরের জন্য যে একাউন্ট টাইপ তৈরী করেছেন মেটাডাটা তা মেটাডাটা নির্দিষ্ট করে, আপনার অ্যাপের সাথে সম্পৃক্ত কনটেন্ট প্রভাইডার অথরিটি ডিক্লেয়ার করে, সিঙ্ক অ্যাডাপটরের সাথে জরিত সিস্টেম ইউজার ইন্টারফেসের একটি অংশকে নিয়ন্ত্রণ করে এবং অন্য সিঙ্ক সম্পর্কিত ফ্ল্যাগ ডিক্লেয়ার করে। আপনার অ্যাপ প্রজেক্টেও মধ্যেকার /res/xml/ ডিরেক্টরির মধ্যে স্টোর করা একটি বিশেষ XML ফাইলের মধ্যে এই মেটাডেটা ডিক্লয়ার করুন। আপনি এই ফাইলের যে কোন নাম দিতে পারেন, যদি এটাকে syncaapter নামে ডাকা হয়।
এই XML ফাইল একটি একক XML এলিমেন্ট < sync-adapter> ধারন করে যার নিম্নোক্ত বিশেষত্ব গুলো রয়েছে:
android:contentAuthority
আপনার কনটেন্ট প্রভাইডারের জন্য URI অথরিটি। পূর্ববর্তী অনুশীলনীতে (Creating a Stub Content Provider) আপনি যদি আপনার অ্যাপের জন্য একটি স্টাব কনটেন্ট প্রভাইডার তৈরী করে থাকেন, আপনি অ্যাপ মেনিফেস্টে যে < provider> এলিমেন্ট যুক্ত করেছেন তার মধ্যে এট্রিবিউট android:authorities জন্যে যে ভ্যালু নির্দিষ্ট করেছেন তা ব্যবহার করুন। এই এট্রিবিউট Declare the Provider in the Manifest অধ্যায়ে আরও বিস্তারিতভাবে আলোচনা করা হয়েছে। আপনি যদি সিঙ্ক অ্যাডাপটর দিয়ে একটি কনটেন্ট প্রভাইডার থেকে সার্ভারে ডাটা ট্রান্সফার করতে থাকেন, এই ভ্যালূ একই রকম হওয়া উচিত যেমন আপনি ডাটার জন্য কনটেন্ট টজও ব্যবহার করছেন সেরকম। এই ভ্যালু একটি অথরিটিও যা < provider> এলিমেন্টের android:authorities এট্রিবিউটের মধ্যে যা আপনি নির্দিষ্ট করেছেন যা আপনার অ্যাপ মেনিফেস্টের মধ্যে আপনার প্রভাইডারকে ডিক্লোয়ার করে।
android:accountType
সিঙ্ক অ্যাডাপটর ফ্রেমওয়ার্ক দ্বারা চাওয়া একাউন্ট টাইপ। যখন আপনি অথেনটিকেটর মেটাডেটা ফাইল তৈরী করেছিলেন তখন যে একাউন্ট টাইপ ভ্যালু প্রদান করেছিলেন ভ্যালুটিকে অবশ্যই সেই রকম হতে হবে, যেভাবে Add the Authenticator Metadata File অধ্যায়ে আলোচনা করা হয়েছে। এটা Add the Account Required by the Framework অধ্যায়ে মধ্যে কোড চিত্রের (কোড স্নিপেট) মধ্যে কনসটেন্ট ACCOUNT_TYPE এর জন্য নির্দিষ্ট ভ্যালুও।
Settings attributes
android:userVisible সিঙ্ক অ্যাডাপটরের একাউন্ট টাইপের দৃশ্যমানতা সেট করুন। বাই ডিফল্ট একাউন্ট টাইপের সাথে সম্পৃক্ত একাউন্ট আইকন এবং লেভেল সিস্টেমের সেটিংস অ্যাপের Accounts অধ্যায়ের মধ্যে দৃশ্যমান, আপনার উচিত আপনার সিঙ্ক অ্যাডাপটর অদৃশ্য করা যতক্ষণ না আপনার একটি একাউন্ট টাইপ বা ডোমেইন থাকছে যা আপনার অ্যাপের সাথে সহজেই সম্পৃক্ত হয়। আপনি যদি আপনার একাউন্ট টাইপ অদৃশ্য করেন, আপনি তখনও ইউজারকে আপনার অ্যাপের একটি একটিভিটির মথ্যে একটি ইউজার ইন্টারফেস দিয়ে আপনার সিঙ্ক অ্যাডাপটর নিয়ন্ত্রণ করতে দিতে পারবেন।
android:supportsUploading
আপনাকে ক্লাউডে ডাটা আপলোড করতে দেয়। আপনার অ্যাপ যদি শুধূ ডাটা ডাউনলোড করে এটাকে false এ সেট করুন।
android:allowParallelSyncs
একই সময়ে রান করতে আপনার সিঙ্ক অ্যাডাপটর উপাদানের মাল্টিপল ইনসটেন্স অনুমোদন। এটা ব্যবহার করুন যদি আপনার অ্যাপ মাল্টিপল (বহুবিধ) ইউজার একাউন্ট সাপোর্ট করে এবং সমান্তরালভাবে আপনি মাল্টিপল ইউজারকে ডাটা ট্রান্সফার করতে দিতে চান। ফ্ল্যাগের কোন প্রভাব নেই যদি আপনি কখনই মাল্টিপল ডাটা ট্রান্সফার না করেন।
android:isAlwaysSyncable
সিঙ্ক অ্যাডাপটর ফ্রেমওয়ার্কে নির্দেশ করে যে এটা আপনার সিঙ্ক অ্যাডাপটরকে রান করবে আপনি যখণই নির্দিস্ট করেন। আপনি যদি প্রোগ্রামেটিক্যালি নিয়ন্ত্রণ করতে চান, যখন আপনার সিঙ্ক অ্যাডাপটর রান করতে পারবে, এই ফ্ল্যাগস ভধষংব এ সেট করুন, এবং তারপর সিঙ্ক অ্যাডাপটর রান করতে requestSync()কল করুন। একটি সিঙ্ক অ্যাডাপটর রান করার বিষয়ে বিস্তারিত জানতে Running a Sync Adapter দেখুন।
নিচের উদাহরণ দেখায়, একটি সিঙ্ক অ্যাডাপটরের জন্য XML যা একটি একক প্রতিরূপ (ডামি) একাউন্ট ব্যবহার করে এবং শূধুমাত্র ডাউনলোড করে।
<?xml version="1.0" encoding="utf-8"?>
<sync-adapter
xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="com.example.android.datasync.provider"
android:accountType="com.android.example.datasync"
android:userVisible="false"
android:supportsUploading="false"
android:allowParallelSyncs="false"
android:isAlwaysSyncable="true"/>