EnvironmentClient

interface EnvironmentClient


क्लाइंट को एनवायरमेंट से जुड़ी एपीआई ऐक्सेस करने की अनुमति देता है.

इंस्टेंस बनाने के लिए EnvironmentClientFactory का इस्तेमाल करें.

खास जानकारी

पब्लिक फ़ंक्शन

suspend Environment

Environment दिखाता है.

ListenableFuture<Environment>

Environment दिखाता है.

suspend PrepareEnvironmentResponse
prepareEnvironment(
    request: PrepareEnvironmentRequest,
    notificationServiceComponentName: ComponentName?
)

यह कुकी, डिवाइस के एनवायरमेंट को तैयार करती है.

ListenableFuture<PrepareEnvironmentResponse>
prepareEnvironmentAsync(
    request: PrepareEnvironmentRequest,
    notificationServiceComponentName: ComponentName?
)

यह कुकी, डिवाइस के एनवायरमेंट को तैयार करती है.

पब्लिक फ़ंक्शन

getEnvironment

suspend fun getEnvironment(request: GetEnvironmentRequest): Environment

Environment दिखाता है. इससे कॉल करने वाले व्यक्ति को यह पता चलता है कि एनवायरमेंट तैयार है या नहीं.

थ्रो
com.google.android.managementapi.common.exceptions.InvalidArgumentException

अगर अनुरोध की गई भूमिकाएं मान्य नहीं हैं.

com.google.android.managementapi.common.exceptions.InternalException

अगर किसी अंदरूनी गड़बड़ी की वजह से कॉल नहीं हो पाता है.

com.google.android.managementapi.common.exceptions.ApiLevelException

अगर डिवाइस का एसडीके एपीआई लेवल, अनुरोध की गई कुछ भूमिकाओं के लिए ज़रूरी शर्तों को पूरा नहीं करता है. ऐसा कॉल के लिए ज़रूरी सामान्य एपीआई लेवल के अलावा भी हो सकता है. {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} के लिए, एपीआई लेवल 23 या उसके बाद का वर्शन ज़रूरी है. अन्य भूमिकाओं के लिए, एपीआई लेवल 28 या उसके बाद का वर्शन ज़रूरी है.

getEnvironmentAsync

fun getEnvironmentAsync(request: GetEnvironmentRequest): ListenableFuture<Environment>

Environment दिखाता है. इससे कॉल करने वाले व्यक्ति को यह पता चलता है कि एनवायरमेंट तैयार है या नहीं.

रिटर्न
ListenableFuture<Environment>

नतीजे को रैप करने वाला ListenableFuture. यह स्थिति हो सकती है:

  • अगर ऑपरेशन पूरा हो जाता है, तो Environment रैप किया जाता है.

  • अगर अनुरोध की गई भूमिकाएं मान्य नहीं हैं, तो InvalidArgumentException को रैप करने वाला फ़्यूचर पूरा नहीं होगा.

  • अगर किसी अंदरूनी गड़बड़ी की वजह से कॉल पूरा नहीं हो सका, तो InternalException को रैप करने वाला फ़ेल हुआ फ़्यूचर.

थ्रो
com.google.android.managementapi.common.exceptions.ApiLevelException

अगर डिवाइस का एसडीके एपीआई लेवल, अनुरोध की गई कुछ भूमिकाओं के लिए ज़रूरी शर्तों को पूरा नहीं करता है. ऐसा कॉल के लिए ज़रूरी सामान्य एपीआई लेवल के अलावा भी हो सकता है. {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} के लिए, एपीआई लेवल 23 या उसके बाद का वर्शन ज़रूरी है. अन्य भूमिकाओं के लिए, एपीआई लेवल 28 या उसके बाद का वर्शन ज़रूरी है.

prepareEnvironment

suspend fun prepareEnvironment(
    request: PrepareEnvironmentRequest,
    notificationServiceComponentName: ComponentName?
): PrepareEnvironmentResponse

यह कुकी, डिवाइस के एनवायरमेंट को तैयार करती है.

यह कुकी, उपयोगकर्ता को ज़रूरी Android Device Policy ऐप्लिकेशन इंस्टॉल करने के लिए प्रॉम्प्ट करती है. अगर उपयोगकर्ता प्रॉम्प्ट को स्वीकार करता है, तो इंस्टॉलेशन जारी रहता है. इंस्टॉल हो जाने के बाद, यह कुछ कार्रवाइयां करता है. इससे यह पक्का होता है कि Android Device Policy ऐप्लिकेशन इस्तेमाल के लिए तैयार है.

पैरामीटर
notificationServiceComponentName: ComponentName?

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

  1. अपने ऐप्लिकेशन में EnvironmentListener इंटरफ़ेस लागू करें.

  2. मिले हुए इवेंट को मैनेज करने का तरीका लागू करें.

  3. NotificationReceiverService को बढ़ाएं और EnvironmentListener इंस्टेंस उपलब्ध कराएं.

  4. अपनी AndroidManifest.xml फ़ाइल में, एक्सटेंड की गई NotificationReceiverService क्लास जोड़ें. साथ ही, यह पक्का करें कि इसे एक्सपोर्ट किया गया हो.

उदाहरण के लिए:

class MyEnvironmentListener : EnvironmentListener {
override fun onEnvironmentEvent(event: EnvironmentEvent) {
// Handle the environment event.
}
}

class MyNotificationReceiverService : NotificationReceiverService() {
override fun getPrepareEnvironmentListener(): EnvironmentListener? {
return MyEnvironmentListener()
}
}
रिटर्न
PrepareEnvironmentResponse

PrepareEnvironmentResponse में एनवायरमेंट तैयार करने की प्रोसेस के फ़ाइनल स्टेटस के बारे में जानकारी होती है.

थ्रो
com.google.android.managementapi.common.exceptions.InvalidArgumentException

अगर:

  • [notificationServiceComponentName] कॉम्पोनेंट, कॉल करने वाले ऐप्लिकेशन से जुड़ा मान्य कॉम्पोनेंट नहीं है या इसे मेनिफ़ेस्ट में एक्सपोर्ट नहीं किया गया है.
  • अनुरोध की गई भूमिकाओं में {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} शामिल है. साथ ही, {@code com.google.android.managementapi.environment.model.PrepareEnvironmentRequest.admin} उपलब्ध नहीं है या {@code android.app.admin.DeviceAdminReceiver} तक नहीं पहुंचता है.
  • अनुरोध की गई भूमिकाएं मान्य नहीं हैं.
java.lang.SecurityException

अगर कॉलर को इस एपीआई को कॉल करने की अनुमति नहीं है.

com.google.android.managementapi.environment.GooglePlayServicesAppNotUpdatedException

अगर Google Play services अप-टू-डेट नहीं है.

com.google.android.managementapi.environment.AndroidDevicePolicyInstallOrUpdateUnrecoverableException

अगर Android Device Policy इंस्टॉल या अपडेट नहीं हो पाता है और गड़बड़ी ठीक नहीं की जा सकती.

com.google.android.managementapi.environment.AndroidDevicePolicyInstallOrUpdateRecoverableException

अगर Android Device Policy ऐप्लिकेशन इंस्टॉल या अपडेट नहीं हो पाता है और गड़बड़ी को ठीक किया जा सकता है (जैसे, नेटवर्क से जुड़ी कुछ समय के लिए हुई समस्याओं की वजह से अनुरोध पूरा नहीं हो सका), तो अनुरोध को फिर से भेजा जा सकता है.

com.google.android.managementapi.environment.AndroidDevicePolicyInstallConsentDeclinedException

अगर उपयोगकर्ता, Android Device Policy ऐप्लिकेशन इंस्टॉल करने से मना कर देता है.

com.google.android.managementapi.environment.AndroidDevicePolicyInstallConsentDismissedException

अगर उपयोगकर्ता, इंस्टॉल करने के लिए सहमति देने वाली स्क्रीन को खारिज कर देता है.

com.google.android.managementapi.common.exceptions.InternalException

अगर किसी अंदरूनी गड़बड़ी की वजह से कॉल नहीं हो पाता है.

com.google.android.managementapi.environment.PlayStoreUpdateUnrecoverableException

अगर Play Store अपडेट नहीं हो पाता है.

com.google.android.managementapi.common.exceptions.ApiLevelException

अगर डिवाइस के एसडीके का एपीआई लेवल, अनुरोध की गई कुछ भूमिकाओं के लिए ज़रूरी शर्तों को पूरा नहीं करता है. ऐसा कॉल के लिए, एपीआई लेवल की सामान्य ज़रूरी शर्तों के अलावा भी हो सकता है. {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} के लिए, एपीआई लेवल 23 या इससे ऊपर का लेवल होना ज़रूरी है. अन्य भूमिकाओं के लिए, एपीआई लेवल 28 या उसके बाद का वर्शन ज़रूरी है.

prepareEnvironmentAsync

fun prepareEnvironmentAsync(
    request: PrepareEnvironmentRequest,
    notificationServiceComponentName: ComponentName?
): ListenableFuture<PrepareEnvironmentResponse>

यह कुकी, डिवाइस के एनवायरमेंट को तैयार करती है.

यह कुकी, उपयोगकर्ता को ज़रूरी Android Device Policy ऐप्लिकेशन इंस्टॉल करने के लिए प्रॉम्प्ट करती है. अगर उपयोगकर्ता प्रॉम्प्ट को स्वीकार करता है, तो इंस्टॉलेशन जारी रहता है. इंस्टॉल हो जाने के बाद, यह कुछ कार्रवाइयां करता है. इससे यह पक्का होता है कि Android Device Policy ऐप्लिकेशन इस्तेमाल के लिए तैयार है.

पैरामीटर
notificationServiceComponentName: ComponentName?

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

  1. अपने ऐप्लिकेशन में EnvironmentListener इंटरफ़ेस लागू करें.

  2. मिले हुए इवेंट को मैनेज करने का तरीका लागू करें.

  3. NotificationReceiverService को बढ़ाएं और EnvironmentListener इंस्टेंस उपलब्ध कराएं.

  4. अपनी AndroidManifest.xml फ़ाइल में, एक्सटेंड की गई NotificationReceiverService क्लास जोड़ें. साथ ही, यह पक्का करें कि इसे एक्सपोर्ट किया गया हो.

उदाहरण के लिए:

class MyEnvironmentListener : EnvironmentListener {
override fun onEnvironmentEvent(event: EnvironmentEvent) {
// Handle the environment event.
}
}

class MyNotificationReceiverService : NotificationReceiverService() {
override fun getPrepareEnvironmentListener(): EnvironmentListener? {
return MyEnvironmentListener()
}
}
रिटर्न
ListenableFuture<PrepareEnvironmentResponse>

नतीजे को रैप करने वाला ListenableFuture. यह हो सकता है

  • यह एक ऐसा फ़्यूचर है जो तब पूरा होता है, जब एनवायरमेंट तैयार हो जाता है. इसमें एनवायरमेंट तैयार होने की स्थिति के बारे में जानकारी होती है.PrepareEnvironmentResponse

  • अगर InvalidArgumentException में ये समस्याएं हैं, तो फ़ेल हो चुका फ़्यूचर रैप किया जाता है:

    • [notificationServiceComponentName], कॉल करने वाले ऐप्लिकेशन का मान्य कॉम्पोनेंट नहीं है या इसे मेनिफ़ेस्ट में एक्सपोर्ट नहीं किया गया है.
    • अनुरोध की गई भूमिकाएं मान्य नहीं हैं.
    • अनुरोध की गई भूमिकाओं में {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} शामिल है. साथ ही, {@code com.google.android.managementapi.environment.model.PrepareEnvironmentRequest.admin} उपलब्ध नहीं है या {@code android.app.admin.DeviceAdminReceiver} तक नहीं पहुंचता है.
  • अगर कॉलर के पास इस एपीआई को कॉल करने की अनुमति नहीं है, तो SecurityException को रैप करने वाला फ़ेल हो जाएगा.

  • अगर Google Play services अप-टू-डेट नहीं है, तो GooglePlayServicesAppNotUpdatedException को रैप करने वाला फ़्यूचर फ़ेल हो जाता है.

  • अगर Android Device Policy इंस्टॉल या अपडेट नहीं हो पाती है और गड़बड़ी ठीक नहीं की जा सकती, तो AndroidDevicePolicyInstallOrUpdateUnrecoverableException को रैप करने वाला फ़्यूचर फ़ेल हो जाता है.

  • अगर Android Device Policy ऐप्लिकेशन इंस्टॉल या अपडेट नहीं हो पाता है और गड़बड़ी ठीक की जा सकती है (जैसे, नेटवर्क से जुड़ी कुछ समय के लिए हुई समस्याओं की वजह से अनुरोध पूरा नहीं हो सका), तो AndroidDevicePolicyInstallOrUpdateRecoverableException को रैप करने वाला फ़्यूचर पूरा नहीं हो पाता. इसलिए, अनुरोध को फिर से आज़माया जा सकता है.

  • अगर उपयोगकर्ता Android Device Policy ऐप्लिकेशन इंस्टॉल करने से मना करता है, तो AndroidDevicePolicyInstallConsentDeclinedException को रैप करने वाला फ़ेल हुआ फ़्यूचर.

  • अगर उपयोगकर्ता, इंस्टॉल करने की सहमति वाली स्क्रीन को खारिज कर देता है, तो AndroidDevicePolicyInstallConsentDismissedException को रैप करने वाला फ़ेल हो चुका फ़्यूचर.

  • अगर किसी अंदरूनी गड़बड़ी की वजह से कॉल पूरा नहीं हो सका, तो InternalException को रैप करने वाला फ़ेल हुआ फ़्यूचर.

  • अगर Play Store अपडेट नहीं हो पाता है, तो PlayStoreUpdateUnrecoverableException को रैप करने वाला फ़ेल हुआ फ़्यूचर.

थ्रो
com.google.android.managementapi.common.exceptions.ApiLevelException

अगर डिवाइस का एसडीके एपीआई लेवल, अनुरोध की गई कुछ भूमिकाओं के लिए ज़रूरी शर्तों को पूरा नहीं करता है. {@code Role.RoleType.DEVICE_POLICY_CONTROLLER} के लिए, एपीआई लेवल 23 या उसके बाद का वर्शन ज़रूरी है. अन्य भूमिकाओं के लिए, एपीआई लेवल 28 या उसके बाद का वर्शन ज़रूरी है.