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 सैंडबॉक्स में IsolatedService को लागू करता है.

void requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackageException> receiver)

में SurfaceControlViewHost.SurfacePackage को डालने का अनुरोध किया जाता है कॉल करने की सुविधा देने वाले ऐप्लिकेशन में SurfaceView.

इनहेरिट किए गए तरीके

सार्वजनिक तरीके

लागू करना

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.SurfacePackageException> 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 नहीं हो सकता.