কুইক সেটিংস হল কুইক সেটিংস প্যানেলে প্রদর্শিত টাইল, যা অ্যাকশনগুলি প্রতিনিধিত্ব করে, যেগুলিতে ব্যবহারকারীরা দ্রুত পুনরাবৃত্ত কাজগুলি সম্পন্ন করতে ট্যাপ করতে পারেন। আপনার অ্যাপটি TileService ক্লাসের মাধ্যমে ব্যবহারকারীদের একটি কাস্টম টাইল সরবরাহ করতে পারে এবং টাইলের অবস্থা ট্র্যাক করতে একটি Tile অবজেক্ট ব্যবহার করতে পারে। উদাহরণস্বরূপ, আপনি এমন একটি টাইল তৈরি করতে পারেন যা ব্যবহারকারীদের আপনার অ্যাপ দ্বারা সরবরাহিত একটি VPN চালু বা বন্ধ করতে দেয়।

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

আপনার টাইলের আবিষ্কারযোগ্যতা এবং ব্যবহারের সহজতা উন্নত করতে, আমরা কিছু অভ্যাস এড়িয়ে চলার পরামর্শ দিচ্ছি:
অ্যাপ চালু করার জন্য টাইলস ব্যবহার করা এড়িয়ে চলুন। এর পরিবর্তে অ্যাপ শর্টকাট অথবা স্ট্যান্ডার্ড লঞ্চার ব্যবহার করুন।
এককালীন ব্যবহারকারীর ক্রিয়াকলাপের জন্য টাইলস ব্যবহার করা এড়িয়ে চলুন। পরিবর্তে একটি অ্যাপ শর্টকাট বা একটি বিজ্ঞপ্তি ব্যবহার করুন।
খুব বেশি টাইল তৈরি করা এড়িয়ে চলুন। আমরা প্রতিটি অ্যাপে সর্বাধিক দুটি টাইল তৈরি করার পরামর্শ দিচ্ছি। পরিবর্তে একটি অ্যাপ শর্টকাট ব্যবহার করুন।
এমন টাইল ব্যবহার করা এড়িয়ে চলুন যা তথ্য প্রদর্শন করে, কিন্তু ব্যবহারকারীদের জন্য ইন্টারেক্টিভ নয়। পরিবর্তে একটি বিজ্ঞপ্তি বা উইজেট ব্যবহার করুন।
আপনার টাইল তৈরি করুন
একটি টাইল তৈরি করতে, আপনাকে প্রথমে একটি উপযুক্ত টাইল আইকন তৈরি করতে হবে, তারপর আপনার অ্যাপের ম্যানিফেস্ট ফাইলে আপনার TileService তৈরি এবং ঘোষণা করতে হবে।
দ্রুত সেটিংস নমুনাটি কীভাবে একটি টাইল তৈরি এবং পরিচালনা করতে হয় তার একটি উদাহরণ প্রদান করে।
আপনার কাস্টম আইকন তৈরি করুন
আপনাকে একটি কাস্টম আইকন সরবরাহ করতে হবে, যা দ্রুত সেটিংস প্যানেলে টাইলে প্রদর্শিত হবে। (পরবর্তী বিভাগে বর্ণিত TileService ঘোষণা করার সময় আপনি এই আইকনটি যুক্ত করবেন।) আইকনটি অবশ্যই একটি স্বচ্ছ পটভূমি সহ একটি সাদা রঙের হতে হবে, 24 x 24dp পরিমাপ করতে হবে এবং একটি VectorDrawable আকারে হতে হবে।

এমন একটি আইকন তৈরি করুন যা আপনার টাইলের উদ্দেশ্য সম্পর্কে স্পষ্টভাবে ইঙ্গিত দেয়। এটি ব্যবহারকারীদের সহজেই শনাক্ত করতে সাহায্য করে যে আপনার টাইল তাদের প্রয়োজনের সাথে খাপ খায় কিনা। উদাহরণস্বরূপ, আপনি একটি ফিটনেস অ্যাপের জন্য একটি টাইলের জন্য একটি স্টপওয়াচের আইকন তৈরি করতে পারেন যা ব্যবহারকারীদের একটি ওয়ার্কআউট সেশন শুরু করতে দেয়।
আপনার TileService তৈরি করুন এবং ঘোষণা করুন
আপনার টাইলের জন্য এমন একটি পরিষেবা তৈরি করুন যা TileService ক্লাসকে প্রসারিত করে।
কোটলিন
class MyQSTileService: TileService() { // Called when the user adds your tile. override fun onTileAdded() { super.onTileAdded() } // Called when your app can update your tile. override fun onStartListening() { super.onStartListening() } // Called when your app can no longer update your tile. override fun onStopListening() { super.onStopListening() } // Called when the user taps on your tile in an active or inactive state. override fun onClick() { super.onClick() } // Called when the user removes your tile. override fun onTileRemoved() { super.onTileRemoved() } }
জাভা
public class MyQSTileService extends TileService { // Called when the user adds your tile. @Override public void onTileAdded() { super.onTileAdded(); } // Called when your app can update your tile. @Override public void onStartListening() { super.onStartListening(); } // Called when your app can no longer update your tile. @Override public void onStopListening() { super.onStopListening(); } // Called when the user taps on your tile in an active or inactive state. @Override public void onClick() { super.onClick(); } // Called when the user removes your tile. @Override public void onTileRemoved() { super.onTileRemoved(); } }
আপনার অ্যাপের ম্যানিফেস্ট ফাইলে আপনার TileService ঘোষণা করুন। আপনার TileService এর নাম এবং লেবেল, পূর্ববর্তী বিভাগে আপনার তৈরি করা কাস্টম আইকন এবং উপযুক্ত অনুমতি যোগ করুন।
<service
android:name=".MyQSTileService"
android:exported="true"
android:label="@string/my_default_tile_label" // 18-character limit.
android:icon="@drawable/my_default_icon_label"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>
আপনার টাইল সার্ভিস পরিচালনা করুন
একবার আপনি আপনার অ্যাপ ম্যানিফেস্টে আপনার TileService তৈরি এবং ঘোষণা করার পরে, আপনাকে এর অবস্থা পরিচালনা করতে হবে।
TileService হল একটি বাউন্ড সার্ভিস । আপনার অ্যাপ যখন অনুরোধ করে অথবা সিস্টেমের সাথে যোগাযোগের প্রয়োজন হয় তখন আপনার TileService বাউন্ড হয়ে যায়। একটি সাধারণ বাউন্ড-সার্ভিস লাইফসাইকেলে নিম্নলিখিত চারটি কলব্যাক পদ্ধতি থাকে: onCreate() , onBind() , onUnbind() , এবং onDestroy() । প্রতিবার যখন পরিষেবাটি একটি নতুন লাইফসাইকেল পর্যায়ে প্রবেশ করে তখন সিস্টেম এই পদ্ধতিগুলি ব্যবহার করে।
টাইলসার্ভিস জীবনচক্রের ওভারভিউ
বাউন্ড-সার্ভিস লাইফসাইকেল নিয়ন্ত্রণকারী কলব্যাকগুলি ছাড়াও, আপনাকে TileService লাইফসাইকেলের জন্য নির্দিষ্ট অন্যান্য পদ্ধতি প্রয়োগ করতে হবে। এই পদ্ধতিগুলিকে onCreate() এবং onDestroy() এর বাইরে বলা যেতে পারে কারণ Service লাইফসাইকেল পদ্ধতি এবং TileService লাইফসাইকেল পদ্ধতি দুটি পৃথক অ্যাসিঙ্ক্রোনাস থ্রেডে ডাকা হয়।
TileService লাইফসাইকেলে নিম্নলিখিত পদ্ধতিগুলি থাকে, যা আপনার TileService যখনই একটি নতুন লাইফসাইকেল পর্যায়ে প্রবেশ করে তখন সিস্টেম দ্বারা ব্যবহৃত হয়:
onTileAdded(): এই পদ্ধতিটি তখনই ব্যবহৃত হয় যখন ব্যবহারকারী প্রথমবারের মতো আপনার টাইল যোগ করে, এবং যদি ব্যবহারকারী আপনার টাইলটি সরিয়ে আবার যোগ করে। যেকোনো এককালীন ইনিশিয়ালাইজেশন করার জন্য এটিই সেরা সময়। তবে, এটি সমস্ত প্রয়োজনীয় ইনিশিয়ালাইজেশন পূরণ নাও করতে পারে।onStartListening()এবংonStopListening(): আপনার অ্যাপ যখনই টাইল আপডেট করে তখন এই পদ্ধতিগুলি কল করা হয় এবং প্রায়শই কল করা হয়।TileServiceonStartListening()এবংonStopListening()এর মধ্যে আবদ্ধ থাকে, যা আপনার অ্যাপকে টাইল পরিবর্তন করতে এবং আপডেট পুশ করতে দেয়।onTileRemoved(): ব্যবহারকারী আপনার টাইলটি সরিয়ে ফেললেই কেবল এই পদ্ধতিটি কল করা হয়।
শোনার মোড নির্বাচন করুন
আপনার TileService সক্রিয় মোড বা অ-সক্রিয় মোডে শোনা যায়। আমরা সক্রিয় মোড ব্যবহার করার পরামর্শ দিচ্ছি, যা আপনাকে অ্যাপ ম্যানিফেস্টে ঘোষণা করতে হবে। অন্যথায়, TileService হল স্ট্যান্ডার্ড মোড এবং ঘোষণা করার প্রয়োজন নেই।
ধরে নিবেন না যে আপনার TileService onStartListening() এবং onStopListening() পদ্ধতির বাইরে থাকবে।
সক্রিয় মোড (প্রস্তাবিত)
একটি TileService এর জন্য সক্রিয় মোড ব্যবহার করুন যা তার নিজস্ব প্রক্রিয়ায় তার অবস্থা শোনে এবং পর্যবেক্ষণ করে। সক্রিয় মোডে একটি TileService onTileAdded() , onTileRemoved() , ট্যাপ ইভেন্ট এবং অ্যাপ প্রক্রিয়া দ্বারা অনুরোধ করা হলে এর জন্য আবদ্ধ।
আপনার টাইলের অবস্থা যখন তার নিজস্ব প্রক্রিয়া দ্বারা আপডেট করা হবে তখন যদি আপনার TileService অবহিত করা হয়, তাহলে আমরা অ্যাক্টিভ মোড সুপারিশ করি। অ্যাক্টিভ টাইলগুলি সিস্টেমের উপর চাপ সীমিত করে কারণ ব্যবহারকারীর কাছে দ্রুত সেটিংস প্যানেলটি দৃশ্যমান হওয়ার সাথে সাথে তাদের আবদ্ধ করতে হয় না।
স্ট্যাটিক TileService.requestListeningState() পদ্ধতিটি লিসেনিং স্টেট শুরু করার অনুরোধ করতে এবং onStartListening() এ কলব্যাক পেতে কল করা যেতে পারে।
You can declare active mode by adding the META_DATA_ACTIVE_TILE to your app's manifest file.
<service ...>
<meta-data android:name="android.service.quicksettings.ACTIVE_TILE"
android:value="true" />
...
</service>
অ-সক্রিয় মোড
নন-অ্যাক্টিভ মোড হল স্ট্যান্ডার্ড মোড। একটি TileService যদি ব্যবহারকারীর কাছে আপনার টাইল দৃশ্যমান হয় তখনই এটি আবদ্ধ থাকে, তাহলে এটি নন-অ্যাক্টিভ মোডে থাকে। এর অর্থ হল আপনার TileService তার নিয়ন্ত্রণের বাইরেও তৈরি এবং আবদ্ধ হতে পারে। ব্যবহারকারী যখন টাইলটি দেখছেন না তখন এটি আন-অ্যাক্টিভ এবং ধ্বংসও হতে পারে।
ব্যবহারকারী যখন তাদের Quick Settings প্যানেলটি খুলবে তখন আপনার অ্যাপটি onStartListening() এ একটি কলব্যাক পাবে। আপনি onStartListening() এবং onStopListening() এর মধ্যে যতবার ইচ্ছা আপনার Tile অবজেক্ট আপডেট করতে পারবেন।
আপনাকে নন-অ্যাক্টিভ মোড ঘোষণা করার দরকার নেই—শুধুমাত্র আপনার অ্যাপের ম্যানিফেস্ট ফাইলে META_DATA_ACTIVE_TILE যোগ করবেন না।
টাইল স্টেটস ওভারভিউ
একজন ব্যবহারকারী আপনার টাইল যোগ করার পর, এটি সর্বদা নিম্নলিখিত অবস্থাগুলির মধ্যে একটিতে বিদ্যমান থাকে।
STATE_ACTIVE: একটি চালু বা সক্রিয় অবস্থা নির্দেশ করে। এই অবস্থায় থাকাকালীন ব্যবহারকারী আপনার টাইলের সাথে ইন্টারঅ্যাক্ট করতে পারে।উদাহরণস্বরূপ, একটি ফিটনেস অ্যাপ টাইলের জন্য যা ব্যবহারকারীদের একটি সময় নির্ধারিত ওয়ার্কআউট সেশন শুরু করতে দেয়,
STATE_ACTIVEএর অর্থ হল ব্যবহারকারী একটি ওয়ার্কআউট সেশন শুরু করেছেন এবং টাইমার চলছে।STATE_INACTIVE: একটি বন্ধ বা বিরতিযুক্ত অবস্থা নির্দেশ করে। এই অবস্থায় থাকাকালীন ব্যবহারকারী আপনার টাইলের সাথে ইন্টারঅ্যাক্ট করতে পারে।ফিটনেস অ্যাপ টাইলের উদাহরণটি আবার ব্যবহার করার জন্য,
STATE_INACTIVEতে একটি টাইলের অর্থ হল ব্যবহারকারী কোনও ওয়ার্কআউট সেশন শুরু করেননি, তবে তারা চাইলে তা করতে পারেন।STATE_UNAVAILABLE: একটি অস্থায়ীভাবে অনুপলব্ধ অবস্থা নির্দেশ করে। এই অবস্থায় থাকাকালীন ব্যবহারকারী আপনার টাইলের সাথে ইন্টারঅ্যাক্ট করতে পারবেন না।উদাহরণস্বরূপ,
STATE_UNAVAILABLEতে একটি টাইল মানে হল যে টাইলটি বর্তমানে কোনও কারণে ব্যবহারকারীর কাছে উপলব্ধ নয়।
সিস্টেমটি শুধুমাত্র আপনার Tile অবজেক্টের প্রাথমিক অবস্থা সেট করে। আপনি Tile অবজেক্টের বাকি জীবনচক্র জুড়ে তার অবস্থা সেট করেন।
সিস্টেমটি আপনার Tile অবজেক্টের অবস্থা প্রতিফলিত করার জন্য টাইল আইকন এবং ব্যাকগ্রাউন্ডে রঙ করতে পারে। STATE_ACTIVE তে সেট করা Tile অবজেক্টগুলি সবচেয়ে গাঢ় হয়, যেখানে STATE_INACTIVE এবং STATE_UNAVAILABLE ক্রমশ হালকা হয়। সঠিক রঙটি নির্মাতা এবং সংস্করণের জন্য নির্দিষ্ট।

আপনার টাইল আপডেট করুন
onStartListening() এ কলব্যাক পাওয়ার পর আপনি আপনার টাইল আপডেট করতে পারবেন। টাইলের মোডের উপর নির্ভর করে, onStopListening() এ কলব্যাক না পাওয়া পর্যন্ত আপনার টাইল অন্তত একবার আপডেট করা যেতে পারে।
সক্রিয় মোডে, আপনি onStopListening() এ কলব্যাক পাওয়ার আগে আপনার টাইলটি ঠিক একবার আপডেট করতে পারেন। অ-সক্রিয় মোডে, আপনি onStartListening() এবং onStopListening() এর মধ্যে যতবার ইচ্ছা আপনার টাইল আপডেট করতে পারেন।
আপনি getQsTile() কল করে আপনার Tile অবজেক্টটি পুনরুদ্ধার করতে পারেন। আপনার Tile অবজেক্টের নির্দিষ্ট ক্ষেত্রগুলি আপডেট করতে, নিম্নলিখিত পদ্ধতিগুলি কল করুন:
Tile অবজেক্টের ফিল্ডগুলি সঠিক মানগুলিতে সেট করা শেষ করার পরে, আপনাকে টাইল আপডেট করার জন্য updateTile() কল করতে হবে। এটি সিস্টেমকে আপডেট করা টাইল ডেটা পার্স করতে এবং UI আপডেট করতে সাহায্য করবে।
কোটলিন
data class StateModel(val enabled: Boolean, val label: String, val icon: Icon) override fun onStartListening() { super.onStartListening() val state = getStateFromService() qsTile.label = state.label qsTile.contentDescription = tile.label qsTile.state = if (state.enabled) Tile.STATE_ACTIVE else Tile.STATE_INACTIVE qsTile.icon = state.icon qsTile.updateTile() }
জাভা
public class StateModel { final boolean enabled; final String label; final Icon icon; public StateModel(boolean e, String l, Icon i) { enabled = e; label = l; icon = i; } } @Override public void onStartListening() { super.onStartListening(); StateModel state = getStateFromService(); Tile tile = getQsTile(); tile.setLabel(state.label); tile.setContentDescription(state.label); tile.setState(state.enabled ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE); tile.setIcon(state.icon); tile.updateTile(); }
ট্যাপগুলি হাতল
যদি আপনার টাইল STATE_ACTIVE অথবা STATE_INACTIVE এ থাকে, তাহলে ব্যবহারকারীরা আপনার টাইলটিতে ট্যাপ করে কোনও অ্যাকশন ট্রিগার করতে পারবেন। এরপর সিস্টেমটি আপনার অ্যাপের onClick() কলব্যাক আহ্বান করবে।
একবার আপনার অ্যাপটি onClick() এ কলব্যাক পেলে, এটি একটি ডায়ালগ বা কার্যকলাপ চালু করতে পারে, ব্যাকগ্রাউন্ডের কাজ শুরু করতে পারে, অথবা আপনার টাইলের অবস্থা পরিবর্তন করতে পারে।
কোটলিন
var clicks = 0 override fun onClick() { super.onClick() counter++ qsTile.state = if (counter % 2 == 0) Tile.STATE_ACTIVE else Tile.STATE_INACTIVE qsTile.label = "Clicked $counter times" qsTile.contentDescription = qsTile.label qsTile.updateTile() }
জাভা
int clicks = 0; @Override public void onClick() { super.onClick(); counter++; Tile tile = getQsTile(); tile.setState((counter % 2 == 0) ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE); tile.setLabel("Clicked " + counter + " times"); tile.setContentDescription(tile.getLabel()); tile.updateTile(); }
একটি ডায়ালগ চালু করুন
showDialog() কুইক সেটিংস প্যানেলটি ভেঙে একটি ডায়ালগ দেখায়। যদি অতিরিক্ত ইনপুট বা ব্যবহারকারীর সম্মতির প্রয়োজন হয় তবে আপনার অ্যাকশনে প্রসঙ্গ যোগ করতে একটি ডায়ালগ ব্যবহার করুন।
একটি কার্যকলাপ চালু করুন
startActivityAndCollapse() প্যানেলটি সঙ্কুচিত করার সময় একটি কার্যকলাপ শুরু করে। যদি ডায়ালগের চেয়ে আরও বিস্তারিত তথ্য প্রদর্শনের থাকে, অথবা যদি আপনার কার্যকলাপ অত্যন্ত ইন্টারেক্টিভ হয়, তাহলে কার্যকলাপগুলি কার্যকর।
যদি আপনার অ্যাপের জন্য উল্লেখযোগ্য ব্যবহারকারীর ইন্টারঅ্যাকশনের প্রয়োজন হয়, তাহলে অ্যাপটির শেষ অবলম্বন হিসেবে একটি কার্যকলাপ চালু করা উচিত। পরিবর্তে, একটি ডায়ালগ বা টগল ব্যবহার করার কথা বিবেচনা করুন।
একটি টাইল দীর্ঘক্ষণ ট্যাপ করলে ব্যবহারকারীর জন্য অ্যাপ তথ্য স্ক্রিনটি প্রদর্শিত হবে। এই আচরণটি ওভাররাইড করতে এবং পরিবর্তে পছন্দগুলি সেট করার জন্য একটি কার্যকলাপ চালু করতে, ACTION_QS_TILE_PREFERENCES দিয়ে আপনার কার্যকলাপের একটিতে একটি <intent-filter> যোগ করুন।
অ্যান্ড্রয়েড এপিআই ২৮ দিয়ে শুরু করে, PendingIntent Intent.FLAG_ACTIVITY_NEW_TASK থাকতে হবে:
if (Build.VERSION.SDK_INT >= 28) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
বিকল্পভাবে, আপনি নির্দিষ্ট Activity বিভাগে AndroidManifest.xml এ পতাকাটি যোগ করতে পারেন।
আপনার টাইলটিকে টগলযোগ্য হিসেবে চিহ্নিত করুন
আপনার টাইলটি যদি প্রাথমিকভাবে দুই-অবস্থার সুইচ হিসেবে কাজ করে (যা টাইলসের সবচেয়ে সাধারণ আচরণ) তাহলে আমরা এটিকে টগলযোগ্য হিসেবে চিহ্নিত করার পরামর্শ দিচ্ছি। এটি অপারেটিং সিস্টেমে টাইলের আচরণ সম্পর্কে তথ্য সরবরাহ করতে এবং সামগ্রিক অ্যাক্সেসিবিলিটি উন্নত করতে সহায়তা করে।
আপনার টাইলটিকে টগলযোগ্য হিসেবে চিহ্নিত করতে TOGGLEABLE_TILE মেটাডেটা true সেট করুন।
<service ...>
<meta-data android:name="android.service.quicksettings.TOGGLEABLE_TILE"
android:value="true" />
</service>
নিরাপদে লক করা ডিভাইসগুলিতে কেবল নিরাপদ পদক্ষেপগুলি সম্পাদন করুন
লক করা ডিভাইসে আপনার টাইলটি লক স্ক্রিনের উপরে প্রদর্শিত হতে পারে। যদি টাইলটিতে সংবেদনশীল তথ্য থাকে, তাহলে ডিভাইসটি সুরক্ষিত অবস্থায় আছে কিনা তা নির্ধারণ করতে isSecure() এর মান পরীক্ষা করুন এবং আপনার TileService সেই অনুযায়ী তার আচরণ পরিবর্তন করবে।
যদি লক থাকা অবস্থায় টাইল অ্যাকশনটি নিরাপদে করা যায়, তাহলে লক স্ক্রিনের উপরে একটি অ্যাক্টিভিটি চালু করতে startActivity() ব্যবহার করুন।
যদি টাইল অ্যাকশনটি অনিরাপদ হয়, তাহলে ব্যবহারকারীকে তাদের ডিভাইস আনলক করতে অনুরোধ করার জন্য unlockAndRun() ব্যবহার করুন। সফল হলে, সিস্টেমটি Runnable অবজেক্টটি কার্যকর করবে যা আপনি এই পদ্ধতিতে পাস করেন।
আপনার টাইল শ্রেণীবদ্ধ করুন
কুইক সেটিংসে ব্যবহারকারীর অভিজ্ঞতা উন্নত করার জন্য, আপনি আপনার টাইলগুলিকে শ্রেণীবদ্ধ করতে পারেন। সিস্টেমটি টাইলগুলিকে সংযোগ, প্রদর্শন এবং গোপনীয়তার মতো বিভাগে সংগঠিত করে। সিস্টেমটি কুইক সেটিংস সম্পাদনা মোডে টাইলগুলিকে সাজানো এবং গোষ্ঠীভুক্ত করার জন্য এই বিভাগগুলি ব্যবহার করে, যা ব্যবহারকারীদের জন্য তাদের খুঁজে পাওয়া এবং পরিচালনা করা সহজ করে তোলে।
বাস্তবায়ন
আপনার TileService এর জন্য একটি বিভাগ নির্দিষ্ট করতে, AndroidManifest.xml ফাইলের পরিষেবা ঘোষণায় একটি মেটাডেটা ক্ষেত্র যোগ করুন:
- আপনার
AndroidManifest.xmlএ, আপনারTileServiceএর<service>এলিমেন্টের মধ্যে, একটি<meta-data>এলিমেন্ট যোগ করুন। -
android:name: এই মানটিandroid.service.quicksettings.TILE_CATEGORYতে সেট করুন। -
android:value: পূর্বনির্ধারিত ক্যাটাগরি ধ্রুবকগুলির মধ্যে একটি নির্ধারণ করুন, যেমনandroid.service.quicksettings.CATEGORY_CONNECTIVITYঅথবাandroid.service.quicksettings.CATEGORY_DISPLAY।
নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
<service
android:name=".MyConnectivityTileService"
[...]
>
<meta-data android:name="android.service.quicksettings.TILE_CATEGORY"
android:value="android.service.quicksettings.CATEGORY_CONNECTIVITY" />
</service>
API-তে পূর্বনির্ধারিত বিভাগগুলির একটি সেট রয়েছে যা থেকে আপনি বেছে নিতে পারেন। এই বিভাগগুলিকে TileService ক্লাসের মধ্যে স্ট্রিং ধ্রুবক হিসাবে সংজ্ঞায়িত করা হয়।
যদি কোনও বিভাগ নির্দিষ্ট না করা থাকে, তাহলে সিস্টেম স্বয়ংক্রিয়ভাবে একটি ডিফল্ট বিভাগ নির্ধারণ করে:
- সিস্টেম অ্যাপ থেকে: সিস্টেম অ্যাপ্লিকেশনের অংশ এমন টাইলসের জন্য।
- আপনার ইনস্টল করা অ্যাপগুলি থেকে: ব্যবহারকারী-ইনস্টল করা অ্যাপ্লিকেশনগুলির টাইলসের জন্য।
যদিও গুগল পিক্সেল ডিভাইসগুলি কুইক সেটিংসে বিভাগগুলি ব্যবহার করে, OEM গুলি তাদের নিজ নিজ সিস্টেম UI-তে এই বিভাগের তথ্য ব্যবহার করতে বা উপেক্ষা করতে পারে।
ব্যবহারকারীকে আপনার টাইল যোগ করতে বলুন।
আপনার টাইল ম্যানুয়ালি যোগ করতে, ব্যবহারকারীদের বেশ কয়েকটি ধাপ অনুসরণ করতে হবে:
- দ্রুত সেটিংস প্যানেল খুলতে নিচের দিকে সোয়াইপ করুন।
- সম্পাদনা বোতামটি আলতো চাপুন।
- তাদের ডিভাইসের সমস্ত টাইল স্ক্রোল করুন যতক্ষণ না তারা আপনার টাইলটি খুঁজে পায়।
- আপনার টাইলটি ধরে রাখুন, এবং এটিকে সক্রিয় টাইলগুলির তালিকায় টেনে আনুন।
ব্যবহারকারী যেকোনো সময় আপনার টাইলটি সরাতে বা অপসারণ করতে পারবেন।
অ্যান্ড্রয়েড ১৩ থেকে শুরু করে, আপনি requestAddTileService() পদ্ধতি ব্যবহার করে ব্যবহারকারীদের জন্য আপনার টাইলটি ডিভাইসে যোগ করা আরও সহজ করে তুলতে পারেন। এই পদ্ধতিটি ব্যবহারকারীদের দ্রুত তাদের দ্রুত সেটিংস প্যানেলে সরাসরি আপনার টাইলটি যোগ করার অনুরোধ করে। প্রম্পটে অ্যাপ্লিকেশনের নাম, প্রদত্ত লেবেল এবং আইকন অন্তর্ভুক্ত থাকে।

public void requestAddTileService (
ComponentName tileServiceComponentName,
CharSequence tileLabel,
Icon icon,
Executor resultExecutor,
Consumer<Integer> resultCallback
)
কলব্যাকে টাইলটি যোগ করা হয়েছে কিনা, যোগ করা হয়নি কিনা, এটি ইতিমধ্যেই ছিল কিনা, অথবা কোনও ত্রুটি ঘটেছে কিনা সে সম্পর্কে তথ্য থাকে।
ব্যবহারকারীদের কখন এবং কতবার অনুরোধ করতে হবে তা নির্ধারণ করার সময় আপনার বিচক্ষণতা ব্যবহার করুন। আমরা শুধুমাত্র প্রসঙ্গের ক্ষেত্রে requestAddTileService() কল করার পরামর্শ দিচ্ছি - যেমন যখন ব্যবহারকারী প্রথমবার আপনার টাইল দ্বারা প্রদত্ত কোনও বৈশিষ্ট্যের সাথে ইন্টারঅ্যাক্ট করে।
ব্যবহারকারী যদি আগে যথেষ্ট বার ComponentName এর অনুরোধগুলি প্রত্যাখ্যান করে থাকে, তাহলে সিস্টেমটি তার প্রক্রিয়াকরণ বন্ধ করতে পারে। এই পরিষেবাটি পুনরুদ্ধার করতে ব্যবহৃত Context থেকে ব্যবহারকারী নির্ধারণ করা হয় - এটি অবশ্যই বর্তমান ব্যবহারকারীর সাথে মিলবে।