अपने ऐप्लिकेशन के लिए पसंद के मुताबिक, क्विक सेटिंग टाइल बनाएं

क्विक सेटिंग, क्विक सेटिंग पैनल में दिखने वाली टाइल होती हैं. इससे उपयोगकर्ता, बार-बार होने वाले टास्क को तुरंत पूरा कर सकते हैं. आपका ऐप्लिकेशन TileService की मदद से, उपयोगकर्ताओं को उनकी पसंद के मुताबिक टाइल उपलब्ध करा सकता है क्लास में शामिल करें और टाइल की स्थिति को ट्रैक करने के लिए, Tile ऑब्जेक्ट का इस्तेमाल करें. उदाहरण के लिए, एक ऐसी टाइल बनाई जा सकती है जिससे उपयोगकर्ता, आपके ऐप्लिकेशन से मिले वीपीएन को चालू कर सकें या बंद करें.

क्विक सेटिंग पैनल, जिसमें वीपीएन टाइल चालू है
  चालू और बंद करें
पहली इमेज. क्विक सेटिंग पैनल, जिसमें वीपीएन टाइल चालू है चालू और बंद करें.

तय करना कि टाइल कब बनानी है

हमारा सुझाव है कि आप उन खास सुविधाओं के लिए टाइल बनाएं जो आपको उपयोगकर्ताओं की उम्मीद के मुताबिक हों अक्सर ऐक्सेस करने की ज़रूरत होती है या तेज़ी से ऐक्सेस करने की ज़रूरत होती है. सबसे असरदार टाइल वे होती हैं जो इन दोनों गुणवत्ताओं से मेल खाती हैं, जिससे बार-बार की जाने वाली कार्रवाइयाँ.

उदाहरण के लिए, किसी फ़िटनेस ऐप्लिकेशन के लिए एक टाइल बनाई जा सकती है, ताकि उपयोगकर्ता तेज़ी से वर्कआउट सेशन शुरू करें. हालांकि, हम यह सुझाव नहीं देंगे कि उसी ऐप के लिए जो उपयोगकर्ताओं को अपने पूरे वर्कआउट इतिहास की समीक्षा करने देगा.

फ़िटनेस ऐप्लिकेशन की टाइल के इस्तेमाल के उदाहरण
दूसरी इमेज. फ़िटनेस ऐप्लिकेशन के लिए, सुझाई गई बनाम सुझाई गई टाइल के उदाहरण.

हमारा सुझाव है कि टाइल को आसानी से खोजने और इस्तेमाल करने में मदद करने के लिए, कुछ खास तरीकों से बचें:

  • किसी ऐप्लिकेशन को लॉन्च करने के लिए टाइल का इस्तेमाल न करें. इसके बजाय, ऐप्लिकेशन के शॉर्टकट या स्टैंडर्ड लॉन्चर का इस्तेमाल करें.

  • उपयोगकर्ता की एक बार की गई कार्रवाइयों के लिए टाइल का इस्तेमाल करने से बचें. इसके बजाय, ऐप्लिकेशन के शॉर्टकट या सूचना का इस्तेमाल करें.

  • बहुत ज़्यादा टाइल न बनाएं. हमारा सुझाव है कि हर ऐप्लिकेशन के लिए, ज़्यादा से ज़्यादा दो पैरामीटर इस्तेमाल किए जा सकते हैं. किसी शॉर्टकट का इस्तेमाल करें.

  • ऐसी टाइल का इस्तेमाल करने से बचें जो जानकारी दिखाती हों, लेकिन उपयोगकर्ताओं के लिए इंटरैक्टिव न हों. इसके बजाय, सूचना या विजेट का इस्तेमाल करें.

अपनी टाइल बनाएं

टाइल बनाने के लिए, आपको सबसे पहले सही टाइल आइकॉन बनाना होगा. इसके बाद, अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में TileService बनाकर उसे एलान करना होगा.

क्विक सेटिंग सैंपल में, अलग-अलग प्रोसेस बनाने का तरीका बताया जाता है और टाइल मैनेज करें.

अपना कस्टम आइकॉन बनाना

आपको एक कस्टम आइकॉन देना होगा. यह आइकॉन, Quick में टाइल पर दिखेगा सेटिंग पैनल. (TileService का एलान करते समय, आपको यह आइकॉन जोड़ना होगा. इसके बारे में अगले सेक्शन में बताया गया है.) आइकॉन पूरी तरह सफ़ेद होना चाहिए. साथ ही, जो पारदर्शी बैकग्राउंड का इस्तेमाल करता है, उसका साइज़ 24 x 24dp होता है और उसे इमेज के तौर पर VectorDrawable.

ड्रॉ करने लायक वेक्टर का उदाहरण
तीसरी इमेज. ड्रॉ करने लायक वेक्टर का उदाहरण.

ऐसा आइकॉन बनाएं जिससे टाइल के मकसद के बारे में पता चलता हो. इससे उपयोगकर्ताओं को वे आसानी से पहचान कर सकते हैं कि आपकी टाइल उनकी ज़रूरतों को पूरा करती है या नहीं. उदाहरण के लिए, आपके पास फ़िटनेस ऐप्लिकेशन की टाइल की स्टॉपवॉच का आइकॉन. इससे लोग गेम शुरू करने के लिए, वर्कआउट सेशन.

TileService बनाना और उसका एलान करना

अपनी टाइल के लिए ऐसी सेवा बनाएं जो TileService क्लास को बढ़ाती हो.

Kotlin

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()
  }
}

Java

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 एक बाउंड सेवा है. आपका TileService तब लागू होता है, जब आपके ऐप्लिकेशन ने अनुरोध किया हो या जब सिस्टम को आपसे संपर्क करने की ज़रूरत हो. सामान्य बाउंड-सर्विस लाइफ़साइकल में ये चार कॉलबैक तरीके शामिल हैं: onCreate(), onBind(), onUnbind(), और onDestroy(). जब भी सेवा, लाइफ़साइकल के किसी नए फ़ेज़ में प्रवेश करती है, तब सिस्टम इन तरीकों को लागू करता है.

TileService की लाइफ़साइकल की खास जानकारी

बाउंड की गई सेवा के लाइफ़साइकल को कंट्रोल करने वाले कॉलबैक के अलावा, आपको TileService लाइफ़साइकल के हिसाब से अन्य तरीके भी लागू करने होंगे. ये तरीके onCreate() और onDestroy() के बाहर कॉल किया जा सकता है, क्योंकि Service लाइफ़साइकल मेथड और TileService लाइफ़साइकल मेथड को दो में कॉल किया जाता है अलग-अलग एसिंक्रोनस थ्रेड इस्तेमाल करें.

TileService लाइफ़साइकल में ये तरीके शामिल होते हैं जिन्हें शुरू किया जाता है हर बार आपका TileService लाइफ़साइकल के किसी नए फ़ेज़ में जाने पर, सिस्टम के हिसाब से:

  • onTileAdded(): यह तरीका सिर्फ़ तब कॉल किया जाता है, जब उपयोगकर्ता आपकी और अगर उपयोगकर्ता आपकी टाइल को हटाकर फिर से जोड़ता है. एक बार होने वाली कोई भी शुरुआत करने के लिए, यह सबसे सही समय है. हालांकि, ऐसा हो सकता है कि इससे सभी ज़रूरी प्रोसेस शुरू न हों.

  • onStartListening() और onStopListening(): जब भी आपका ऐप्लिकेशन टाइल को अपडेट करता है, तब इन तरीकों को कॉल किया जाता है. साथ ही, इन्हें अक्सर कॉल किया जाता है. TileService, onStartListening() और onStopListening() के बीच बाउंड रहता है. इससे आपके ऐप्लिकेशन को टाइल में बदलाव करने और अपडेट को पुश करने की अनुमति मिलती है.

  • onTileRemoved(): इस तरीके को सिर्फ़ तब ट्रिगर किया जाता है, जब उपयोगकर्ता आपका टाइल हटाता है.

पॉडकास्ट सुनने का कोई मोड चुनें

आपका TileService, ऐक्टिव मोड या नॉन-ऐक्टिव मोड में सुनता है. हमारे ये सुझाव हैं: ऐक्टिव मोड का इस्तेमाल करके इसकी जानकारी देनी होगी. इसका एलान आपको ऐप्लिकेशन मेनिफ़ेस्ट में करना होगा. या फिर, TileService स्टैंडर्ड मोड है और इसका एलान करने की ज़रूरत नहीं होती.

यह न सोचें कि आपका TileService, onStartListening() के बाहर रहेगा और onStopListening() तरीकों का जोड़ा.

ऐक्टिव मोड का इस्तेमाल, ऐसे TileService के लिए करें जो इसकी स्थिति को सुन और मॉनिटर करता हो खुद की प्रक्रिया शामिल है. ऐक्टिव मोड में मौजूद TileService, onTileAdded(), onTileRemoved(), टैप इवेंट के लिए बाउंड होता है. साथ ही, ऐप्लिकेशन प्रोसेस के अनुरोध करने पर भी ऐसा होता है.

अगर टाइल की स्थिति को अपने-आप अपडेट होने की प्रोसेस के दौरान, TileService को सूचना दी जाती है, तो हमारा सुझाव है कि आप ऐक्टिव मोड का इस्तेमाल करें. ऐक्टिव टाइल, सिस्टम पर दबाव को कम करती हैं. ऐसा इसलिए, क्योंकि जब भी उपयोगकर्ता को क्विक सेटिंग पैनल दिखता है, तब उन्हें बंधे होने की ज़रूरत नहीं होती.

सुनने की स्थिति शुरू करने का अनुरोध करने और onStartListening() पर कॉलबैक पाने के लिए, स्टैटिक TileService.requestListeningState() तरीके को कॉल किया जा सकता है.

ऐक्टिव मोड का एलान करने के लिए, अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में META_DATA_ACTIVE_TILE जोड़ें.

<service ...>
    <meta-data android:name="android.service.quicksettings.ACTIVE_TILE"
         android:value="true" />
    ...
</service>

ऐक्टिव मोड के अलावा अन्य मोड

नॉन-ऐक्टिव मोड, स्टैंडर्ड मोड है. अगर उपयोगकर्ता को आपकी टाइल दिखने पर, TileService बाउंड हो जाता है, तो वह ऐक्टिव मोड में नहीं होता. इसका मतलब है कि TileService को कभी-कभी फिर से बनाया और बाइंड किया जा सकता है. हालांकि, यह इसके कंट्रोल से बाहर होता है. यह जब उपयोगकर्ता टाइल न देख रहा हो, तब भी अनबाउंड हो सकता है और खत्म हो सकता है.

जब उपयोगकर्ता क्विक सेटिंग पैनल खोलता है, तो आपके ऐप्लिकेशन को onStartListening() पर कॉलबैक मिलता है. onStartListening() और onStopListening() के बीच, अपने Tile ऑब्जेक्ट को जितनी बार चाहें उतनी बार अपडेट किया जा सकता है.

आपको ऐप्लिकेशन के नॉन-ऐक्टिव मोड के बारे में बताने की ज़रूरत नहीं है. इसके लिए, बस अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में META_DATA_ACTIVE_TILE को न जोड़ें.

टाइल की स्थितियों के बारे में खास जानकारी

जब कोई उपयोगकर्ता आपकी टाइल जोड़ता है, तो वह हमेशा इनमें से किसी एक स्थिति में मौजूद रहती है.

  • STATE_ACTIVE: इससे पता चलता है कि डिवाइस चालू है या चालू है. इस स्थिति में उपयोगकर्ता, आपकी टाइल के साथ इंटरैक्ट कर सकता है.

    उदाहरण के लिए, फ़िटनेस ऐप्लिकेशन की टाइल के लिए, STATE_ACTIVE का मतलब होगा कि उपयोगकर्ता ने कसरत का सेशन शुरू किया है और टाइमर चल रहा है.

  • STATE_INACTIVE: यह स्टेटस, बंद या रोकी गई स्थिति को दिखाता है. उपयोगकर्ता ये काम कर सकता है: इस स्थिति में रहते हुए अपनी टाइल के साथ इंटरैक्ट करें.

    फ़िटनेस ऐप्लिकेशन की टाइल का उदाहरण दोबारा इस्तेमाल करने के लिए, STATE_INACTIVE में मौजूद टाइल को इसका मतलब है कि उपयोगकर्ता ने वर्कआउट सेशन शुरू नहीं किया है, लेकिन वह ऐसा कर सकता है. वे चाहते थे.

  • STATE_UNAVAILABLE: यह स्टेटस कुछ समय के लिए उपलब्ध नहीं है. इस स्थिति में, उपयोगकर्ता आपकी टाइल से इंटरैक्ट नहीं कर सकता.

    उदाहरण के लिए, STATE_UNAVAILABLE में मौजूद टाइल का मतलब है कि टाइल फ़िलहाल उपयोगकर्ता के लिए उपलब्ध नहीं है.

सिस्टम सिर्फ़ आपके Tile ऑब्जेक्ट की शुरुआती स्थिति सेट करता है. आपने Tile को सेट किया पूरे लाइफ़साइकल के दौरान, ऑब्जेक्ट की स्थिति को मॉनिटर करता है.

आपके Tile ऑब्जेक्ट की स्थिति दिखाने के लिए, सिस्टम टाइल के आइकॉन और बैकग्राउंड को रंग दे सकता है. Tile STATE_ACTIVE पर सेट किए गए ऑब्जेक्ट सबसे गहरे होते हैं. इसके बाद, STATE_INACTIVE और STATE_UNAVAILABLE पर सेट किए गए ऑब्जेक्ट क्रमशः गहरे से हल्के होते जाते हैं. रंग का सटीक ह्यू, मैन्युफ़ैक्चरर और वर्शन पर निर्भर करता है.

ऑब्जेक्ट की स्थिति दिखाने के लिए रंगी गई वीपीएन टाइल
चौथी इमेज. टाइल के स्टेटस (क्रमशः चालू, बंद, और उपलब्ध नहीं) को दिखाने के लिए, टाइल को रंगे जाने के उदाहरण.

अपनी टाइल अपडेट करना

onStartListening() पर कॉलबैक मिलने के बाद, अपनी टाइल अपडेट की जा सकती है. टाइल के मोड के आधार पर, इस तारीख तक आपकी टाइल को कम से कम एक बार अपडेट किया जा सकता है onStopListening() के लिए कॉलबैक मिल रहा है.

ऐक्टिव मोड में, टाइल को अपडेट करने से पहले सिर्फ़ एक बार अपडेट किया जा सकता है onStopListening() पर कॉलबैक करें. ऐक्टिव मोड के बंद होने पर, onStartListening() और onStopListening() के बीच अपनी टाइल को जितनी बार चाहें उतनी बार अपडेट किया जा सकता है.

getQsTile() को कॉल करके, अपना Tile ऑब्जेक्ट वापस पाया जा सकता है. अपने Tile ऑब्जेक्ट के खास फ़ील्ड अपडेट करने के लिए, इन तरीकों को कॉल करें:

Tile ऑब्जेक्ट के फ़ील्ड को सही वैल्यू पर सेट करने के बाद, आपको अपनी टाइल अपडेट करने के लिए updateTile() को कॉल करना होगा. इससे सिस्टम अपडेट किए गए टाइल डेटा को पार्स करने और यूज़र इंटरफ़ेस (यूआई) को अपडेट करने के लिए किया जा सकता है.

Kotlin

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()
}

Java

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() के लिए कॉलबैक मिलता है, तो वह कोई डायलॉग या गतिविधि लॉन्च कर सकता है, बैकग्राउंड में काम को ट्रिगर कर सकता है या आपकी टाइल की स्थिति बदल सकता है.

Kotlin

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()
}

Java

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() कोई गतिविधि शुरू करता है पैनल. अगर दिखाने के लिए ज़्यादा जानकारी है, तो गतिविधियों की जानकारी काम की होती है या अगर आपकी गतिविधि बहुत ज़्यादा इंटरैक्टिव हो.

अगर आपके ऐप्लिकेशन को लोगों के साथ ज़्यादा इंटरैक्शन करने की ज़रूरत है, तो ऐप्लिकेशन को गतिविधि को अंतिम उपाय के रूप में स्वीकार नहीं किया जाता. इसके बजाय, डायलॉग या टॉगल का इस्तेमाल करें.

टाइल पर देर तक टैप करने से, उपयोगकर्ता को ऐप्लिकेशन की जानकारी वाली स्क्रीन दिखेगी. बदलने के लिए और इसके बजाय प्राथमिकताएं सेट करने के लिए कोई गतिविधि लॉन्च करें, इसके साथ आपकी किसी गतिविधि में <intent-filter> ACTION_QS_TILE_PREFERENCES.

Android एपीआई 28 और इसके बाद के वर्शन में, PendingIntent यह ज़रूरी है Intent.FLAG_ACTIVITY_NEW_TASK:

if (Build.VERSION.SDK_INT >= 28) {
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}

इसके अलावा, AndroidManifest.xml में फ़्लैग को किसी खास Activity सेक्शन में जोड़ा जा सकता है.

अपनी टाइल को टॉगल करने लायक के तौर पर मार्क करें

हमारा सुझाव है कि अगर आपकी टाइल मुख्य रूप से दो स्टेट वाला स्विच (यह टाइल का सबसे आम तरीका है). इससे, ऑपरेटिंग सिस्टम को टाइल के व्यवहार के बारे में जानकारी मिलती है. साथ ही, टाइल को ऐक्सेस करने की सुविधा को बेहतर बनाया जा सकता है.

अपनी टाइल को टॉगल किए जा सकने वाले के तौर पर मार्क करने के लिए, TOGGLEABLE_TILE मेटाडेटा को true पर सेट करें.

<service ...>
  <meta-data android:name="android.service.quicksettings.TOGGLEABLE_TILE"
    android:value="true" />
</service>

सुरक्षित रूप से लॉक किए गए डिवाइसों पर सिर्फ़ सुरक्षित कार्रवाइयां करें

लॉक किए गए डिवाइसों पर, आपकी टाइल लॉक स्क्रीन पर सबसे ऊपर दिख सकती है. अगर टाइल इसमें संवेदनशील जानकारी है. इसलिए, isSecure() की वैल्यू की जांच करके, यह पता करें कि डिवाइस सुरक्षित स्थिति में है या नहीं. साथ ही, आपके TileService को उसके व्यवहार में बदलाव कर सके.

अगर लॉक होने पर टाइल की कार्रवाई करना सुरक्षित है, तो लॉक स्क्रीन पर सबसे ऊपर कोई गतिविधि शुरू करने के लिए, startActivity() का इस्तेमाल करें.

अगर टाइल की कार्रवाई असुरक्षित है, तो उपयोगकर्ता को अपने डिवाइस को अनलॉक करने के लिए कहने के लिए, unlockAndRun() का इस्तेमाल करें. अगर पुष्टि हो जाती है, तो सिस्टम उस Runnable ऑब्जेक्ट को लागू करता है जिसे आपने इस तरीके में पास किया है.

उपयोगकर्ता से टाइल जोड़ने का अनुरोध करें

टाइल को मैन्युअल तरीके से जोड़ने के लिए, उपयोगकर्ताओं को ये चरण पूरे करने होंगे:

  1. क्विक सेटिंग पैनल खोलने के लिए, नीचे की ओर स्वाइप करें.
  2. 'बदलाव करें' बटन पर टैप करें.
  3. उनके डिवाइस पर मौजूद सभी टाइल पर तब तक स्क्रोल करें, जब तक वे आपकी टाइल नहीं ढूंढ लेते.
  4. अपनी टाइल को दबाकर रखें और उसे खींचकर, इस्तेमाल की जा रही टाइल की सूची में छोड़ें.

उपयोगकर्ता किसी भी समय आपकी टाइल को दूसरी जगह ले जा सकता है या उसे हटा सकता है.

Android 13 से, requestAddTileService() तरीके का इस्तेमाल किया जा सकता है, ताकि उपयोगकर्ता किसी डिवाइस पर आपकी टाइल को आसानी से जोड़ सकें. इस तरीके से, उपयोगकर्ताओं को सीधे तौर पर उनकी क्विक सेटिंग पैनल में टाइल जोड़ने का अनुरोध मिलता है. प्रॉम्प्ट में ऐप्लिकेशन का नाम, दिया गया लेबल, और आइकॉन शामिल होता है.

फटाफट सेटिंग प्लेसमेंट एपीआई का अनुरोध
पांचवीं इमेज. 'क्विक सेटिंग प्लेसमेंट एपीआई प्रॉम्प्ट'.
public void requestAddTileService (
  ComponentName tileServiceComponentName,
  CharSequence tileLabel,
  Icon icon,
  Executor resultExecutor,
  Consumer<Integer> resultCallback
)

कॉलबैक में यह जानकारी होती है कि टाइल जोड़ी गई या नहीं, नहीं जोड़ा गया, अगर यह पहले से मौजूद था या कोई गड़बड़ी हुई थी.

उपयोगकर्ताओं को कब और कितनी बार प्रॉम्प्ट दिखाना है, यह तय करते समय अपनी समझदारी का इस्तेमाल करें. हमारा सुझाव है कि आप requestAddTileService() को सिर्फ़ संदर्भ में कॉल करें. जैसे, जब उपयोगकर्ता पहली बार आपकी टाइल की सुविधा से जुड़ी किसी सुविधा से इंटरैक्ट करता है.

अगर उपयोगकर्ता ने पहले ही कई बार किसी ComponentName के लिए अनुरोध अस्वीकार कर दिया है, तो सिस्टम उस ComponentName के लिए अनुरोधों को प्रोसेस करना बंद कर सकता है. कॉन्टेंट बनाने उपयोगकर्ता को, इसे पाने के लिए इस्तेमाल किए गए Context से तय किया जाता है सेवा—यह वर्तमान उपयोगकर्ता से मेल खाना चाहिए.