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