OnDevicePersonalizationManager
  public
  
  
  
  class
  OnDevicePersonalizationManager
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.adservices.ondevicepersonalization.OnDevicePersonalizationManager | 
OnDevicePersonalizationManager, ऐप्लिकेशन को ऐसे एपीआई उपलब्ध कराता है जिनसे वे
 IsolatedService को किसी अलग प्रोसेस में इस्तेमाल करें और इसके साथ इंटरैक्ट करें.
 कोई ऐप्लिकेशन, दिखाने के लिए कॉन्टेंट जनरेट करने के लिए IsolatedService का अनुरोध कर सकता है
 ऐप्लिकेशन के व्यू हैरारकी (व्यू और व्यू ग्रुप के लेआउट का क्रम) में SurfaceView के अंदर हो. साथ ही,
 ऑन-डिवाइस स्टोरेज के लिए स्थायी नतीजे मिलते हैं, जिन्हें फ़ेडरेटेड Analytics
 क्रॉस-डिवाइस आंकड़ों का विश्लेषण या मॉडल ट्रेनिंग के लिए फ़ेडरेटेड लर्निंग का इस्तेमाल करें. डिसप्ले
 कॉलिंग ऐप्लिकेशन से कॉन्टेंट और स्थायी आउटपुट, दोनों को सीधे तौर पर ऐक्सेस नहीं किया जा सकता.
खास जानकारी
| सार्वजनिक तरीके | |
|---|---|
| 
        
        
        
        
        
        void | 
      execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
      OnDevicePersonalization सैंडबॉक्स में  | 
| 
        
        
        
        
        
        void | 
      requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
      में  | 
| इनहेरिट किए गए तरीके | |
|---|---|
सार्वजनिक तरीके
लागू करना
public void execute (ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
OnDevicePersonalization सैंडबॉक्स में IsolatedService को लागू करता है. कॉन्टेंट बनाने
 प्लैटफ़ॉर्म, आइसोलेटेड प्रोसेस में, बताए गए IsolatedService से बाइंड करता है
 और IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer) को कॉल करता है
 के पैरामीटर दिए गए हैं. IsolatedService के एक्ज़ीक्यूशन पूरा होने के बाद,
 यह प्लैटफ़ॉर्म, सेवा से मिले नतीजों के बारे में कॉलर को टोकन दिखाता है.
 बाद में, इन टोकन का इस्तेमाल करके,
 कॉल करने के लिए उपलब्ध ऐप्लिकेशन में SurfaceView.
| पैरामीटर | |
|---|---|
| handler | ComponentName:IsolatedServiceकाComponentName.
 यह मानnullनहीं हो सकता. | 
| params | PersistableBundle: एकPersistableBundleजिसे कॉलिंग ऐप्लिकेशन सेIsolatedService. इस पैरामीटर का कॉन्टेंट किस तरह का होना चाहिए, इसके बारे में बताया गया हैIsolatedServiceने किया है. प्लैटफ़ॉर्म इस पैरामीटर को नहीं समझता.
 यह मानnullनहीं हो सकता. | 
| executor | Executor: वहExecutorजिस पर कॉलबैक शुरू करना है.
 यह मानnullनहीं हो सकता.
 कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैंExecutorकी मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड
 इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए
 उपयोग कर रहे हैं, तो आप उपयोग कर सकते हैंContext.getMainExecutor().
 अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वालाExecutorदें. | 
| receiver | OutcomeReceiver: यहSurfacePackageTokenऑब्जेक्ट की सूची दिखाता है, जिनमें से हर एकRenderingConfigके लिए एक ओपेक संदर्भIsolatedServiceयाExceptionगड़बड़ी होने पर. रिटर्नSurfacePackageTokenऑब्जेक्ट का इस्तेमाल अगले टास्क में किया जा सकता है
     नतीजे को व्यू में दिखाने के लिए,requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver)कॉल करें. कॉलिंग ऐप्लिकेशन औरIsolatedServiceको इस सूची के अपेक्षित आकार पर सहमत होना चाहिए.SurfacePackageTokenऑब्जेक्ट की वापस की गई सूची में कोई एंट्री खाली हो सकती है
     यह बताएं कि सेवा में उस खास सरफ़ेस के लिए कोई आउटपुट नहीं है.
     कोई गड़बड़ी होने पर, कॉन्टेंट पाने वाला इनमें से कोई एक अपवाद दिखाता है:
     अगर हैंडलर कोईPackageManager.NameNotFoundExceptionदिखाता है
     पैकेज इंस्टॉल नहीं है या उसका मान्य ओडीपी मेनिफ़ेस्ट नहीं है.
     अगर हैंडलर क्लास नहीं मिलती है, तोClassNotFoundExceptionदिखाता है.
     अगर हैंडलर लागू नहीं होता है, तोOnDevicePersonalizationExceptionदिखाता है. | 
सरफ़ेस पैकेज का अनुरोध करें
public void requestSurfacePackage (SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
में SurfaceControlViewHost.SurfacePackage को डालने का अनुरोध किया जाता है
 कॉल करने की सुविधा देने वाले ऐप्लिकेशन में SurfaceView. सरफ़ेस पैकेज में
 को किए गए पिछले कॉल के परिणाम वाली सामग्री के साथ View
 #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) दौड़ रही है
 OnDevicePersonalization सैंडबॉक्स.
| पैरामीटर | |
|---|---|
| surfacePackageToken | SurfacePackageToken:SurfacePackageTokenका रेफ़रंस#execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver)को किया गया कॉल.
 यह मानnullनहीं हो सकता. | 
| surfaceViewHostToken | IBinder:SurfaceViewका HostToken, जो कि
     इस तारीख के बादSurfaceView.getHostToken()से वापस हुईSurfaceViewको व्यू हैरारकी में जोड़ दिया गया है.
 यह मानnullनहीं हो सकता. | 
| displayId | int: उस लॉजिकल डिसप्ले का पूर्णांक आईडी जिस परSurfaceControlViewHost.SurfacePackage, इन्होंने वापस कियाContext.getDisplay().getDisplayId(). | 
| width | int:SurfaceControlViewHost.SurfacePackageकी चौड़ाई
     पिक्सल में. | 
| height | int:SurfaceControlViewHost.SurfacePackageकी ऊंचाई
     पिक्सल में. | 
| executor | Executor: वहExecutorजिस पर कॉलबैक शुरू करना है
 यह मानnullनहीं हो सकता.
 कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैंExecutorकी मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड
 इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए
 तो आप उपयोग कर सकते हैंContext.getMainExecutor().
 अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वालाExecutorदें. | 
| receiver | OutcomeReceiver: यह या तो
     सफलता मिलने परSurfaceControlViewHost.SurfacePackageया
     फ़ेल होने परException. अपवाद का प्रकार है
     अगर हैंडलर को एक्ज़ीक्यूट नहीं किया जा सकता है, तोOnDevicePersonalizationException.
 
 यह मानnullनहीं हो सकता. | 
