EnvironmentClient

public interface EnvironmentClient


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

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

खास जानकारी

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

abstract @NonNull Environment

यह Environment दिखाता है.

abstract @NonNull ListenableFuture<@NonNull Environment>

यह Environment दिखाता है.

abstract @NonNull PrepareEnvironmentResponse
prepareEnvironment(
    @NonNull PrepareEnvironmentRequest request,
    ComponentName notificationServiceComponentName
)

यह डिवाइस को तैयार करता है. इसके लिए, यह पक्का करता है कि Android Device Policy ऐप्लिकेशन इंस्टॉल हो और इस्तेमाल के लिए तैयार हो.

abstract @NonNull ListenableFuture<@NonNull PrepareEnvironmentResponse>
prepareEnvironmentAsync(
    @NonNull PrepareEnvironmentRequest request,
    ComponentName notificationServiceComponentName
)

यह डिवाइस को तैयार करता है. इसके लिए, यह पक्का करता है कि Android Device Policy ऐप्लिकेशन इंस्टॉल हो और इस्तेमाल के लिए तैयार हो.

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

getEnvironment

abstract @NonNull Environment getEnvironment(@NonNull GetEnvironmentRequest request)

यह 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

abstract @NonNull ListenableFuture<@NonNull Environment> getEnvironmentAsync(@NonNull GetEnvironmentRequest request)

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

रिटर्न
@NonNull ListenableFuture<@NonNull Environment>

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

  • अगर टास्क पूरा हो जाता है, तो Environment को रैप करने वाला एक फ़्यूचर.

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

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

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

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

prepareEnvironment

abstract @NonNull PrepareEnvironmentResponse prepareEnvironment(
    @NonNull PrepareEnvironmentRequest request,
    ComponentName notificationServiceComponentName
)

यह डिवाइस को तैयार करता है. इसके लिए, यह पक्का करता है कि Android Device Policy ऐप्लिकेशन इंस्टॉल हो और इस्तेमाल के लिए तैयार हो.

यह इस बात पर निर्भर करता है कि संदर्भ क्या है:

  • डिवाइस ट्रस्ट फ़्लो: अगर Android Device Policy ऐप्लिकेशन इंस्टॉल नहीं है, तो उपयोगकर्ता को इसे इंस्टॉल करने के लिए कहा जाता है. अगर ऐप्लिकेशन पहले से इंस्टॉल है, तो उसे साइलेंट मोड में अपडेट किया जाता है.

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

पैरामीटर
ComponentName notificationServiceComponentName

सेवा के 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()
}
}
रिटर्न
@NonNull 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} तक नहीं पहुंचता है.
  • अनुरोध की गई भूमिकाएं मान्य नहीं हैं.
SecurityException

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

GooglePlayServicesAppNotUpdatedException

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

AndroidDevicePolicyInstallOrUpdateUnrecoverableException

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

AndroidDevicePolicyInstallOrUpdateRecoverableException

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

AndroidDevicePolicyInstallConsentDeclinedException

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

AndroidDevicePolicyInstallConsentDismissedException

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

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

अगर सिस्टम में गड़बड़ी की वजह से कॉल नहीं हो सका.

PlayStoreUpdateUnrecoverableException

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

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

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

prepareEnvironmentAsync

abstract @NonNull ListenableFuture<@NonNull PrepareEnvironmentResponse> prepareEnvironmentAsync(
    @NonNull PrepareEnvironmentRequest request,
    ComponentName notificationServiceComponentName
)

यह डिवाइस को तैयार करता है. इसके लिए, यह पक्का करता है कि Android Device Policy ऐप्लिकेशन इंस्टॉल हो और इस्तेमाल के लिए तैयार हो.

यह इस बात पर निर्भर करता है कि संदर्भ क्या है:

  • डिवाइस ट्रस्ट फ़्लो: अगर Android Device Policy ऐप्लिकेशन इंस्टॉल नहीं है, तो उपयोगकर्ता को इसे इंस्टॉल करने के लिए कहा जाता है. अगर ऐप्लिकेशन पहले से इंस्टॉल है, तो उसे साइलेंट मोड में अपडेट किया जाता है.

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

पैरामीटर
ComponentName notificationServiceComponentName

सेवा के 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()
}
}
रिटर्न
@NonNull ListenableFuture<@NonNull 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 या उसके बाद का वर्शन ज़रूरी है.