नेटवर्किंग और टेलीफ़ोनी

इस गाइड में मौजूद सुविधाओं में, नेटवर्किंग और टेलीफ़ोनी मैनेजमेंट के बारे में बताया गया है आपकी डिवाइस नीति में लागू की जा सकने वाली क्षमताएं कंट्रोलर (DPC) ऐप्लिकेशन का इस्तेमाल भी करना होगा. इस दस्तावेज़ में कोड शामिल है के नमूने हैं और आप DPC ऐप्लिकेशन Android की एंटरप्राइज़ सुविधाओं के लिए सैंपल कोड का सोर्स.

DPC ऐप्लिकेशन, निजी डिवाइसों या डिवाइस के मालिक वाले मोड में प्रोफ़ाइल मालिक मोड में चल सकता है मोड चालू है. इस टेबल में बताया गया है कि कौनसी सुविधाएं तब उपलब्ध होता है, जब DPC प्रोफ़ाइल मालिक मोड या डिवाइस के मालिक वाले मोड में चलता है मोड:

सुविधा प्रोफ़ाइल का मालिक डिवाइस का मालिक
ऑफ़िस के संपर्क ऐक्सेस करें अलग-अलग प्रोफ़ाइल में
पक्का करें कि वर्क ट्रैफ़िक के लिए सुरक्षित नेटवर्क कनेक्शन
सेट अप करें अलग-अलग इलाकों में एक ही वायरलेस नेटवर्क आईडी
किसी नीति के बारे में वर्क प्रोफ़ाइल के लिए अलग डायलर

सभी प्रोफ़ाइलों पर काम से जुड़े संपर्कों को ऐक्सेस करें

ईएमएम किसी उपयोगकर्ता की निजी प्रोफ़ाइल को काम से जुड़े संपर्क ऐक्सेस करने की अनुमति दे सकते हैं. उपयोगकर्ता के निजी और काम से जुड़े संपर्कों को आस-पास की खोज के ज़रिए ऐक्सेस किया जा सकता है और रिमोट डायरेक्ट्री लुकअप. निजी डिवाइसों पर, निजी डिवाइसों में एक डायलर प्रोफ़ाइल से व्यक्तिगत कॉल और साथ ही काम से जुड़े कॉल किए और रिसीव किए जा सकते हैं. इसके अलावा, काम से जुड़े संपर्क, सिस्टम यूज़र इंटरफ़ेस (यूआई) में बेहतर तरीके से इंटिग्रेट किए गए हों. अगर वर्क प्रोफ़ाइल है, तो इसका डेटा निजी प्रोफ़ाइल पर उपलब्ध नहीं होगा.

सिस्टम यूज़र इंटरफ़ेस (यूआई) के साथ इंटिग्रेट किया गया

सिस्टम यूज़र इंटरफ़ेस (यूआई), ब्रीफ़केस आइकॉन का इस्तेमाल करके, वर्क प्रोफ़ाइल पर आने वाले इनकमिंग कॉल की जानकारी दिखाता है. कॉन्टेंट बनाने callLog यह भी दिखाता है आइकॉन का इस्तेमाल करें. निजी डायलर और संपर्क ऐप्लिकेशन, रिमोट का इस्तेमाल करके वर्क संपर्क के कॉलर आईडी की जानकारी दिखा सकते हैं देखें, तो यह आवश्यक नहीं है कि संपर्क पहले से ही स्थानीय डिवाइस. मैसेजिंग ऐप्लिकेशन, लोकल कॉलर आईडी और खोज कर सकता है.

Android पर काम करने के तरीके की परिभाषा दस्तावेज़ (सीडीडी) में ज़रूरी शर्तें शामिल हैं डिफ़ॉल्ट डायलर में काम की संपर्क जानकारी दिखाने के लिए और ज़रूरी शर्तों को पूरा करने के लिए, संपर्क और मैसेजिंग ऐप्लिकेशन पर बैज लगाकर यह बताया जाता है कि वे काम से जुड़े हैं प्रोफ़ाइल.

काम से जुड़े संपर्क ऐक्सेस किए जा सकते हैं और उन्हें खोजा जा सकता है

उपयोगकर्ता अपनी निजी प्रोफ़ाइल से दफ़्तर के संपर्कों को ऐक्सेस और कॉल कर सकता है, जो डायलर ऐप्लिकेशन की खोज स्क्रीन में दिखती है. उपयोगकर्ता, ऑफ़िस का पता खोज सकता है संपर्क—जो ऑटोकंप्लीट की सुविधा का इस्तेमाल करके—डिवाइस से सिंक किए गए हों और सूची में मौजूद हों में जाकर देखें.

प्राइमरी प्रोफ़ाइल में मौजूद ऑफ़िस के संपर्कों को कंट्रोल करें

यह डीपीसी, ऑफ़िस के संपर्कों को खोजने की अनुमति को कंट्रोल करता है. प्रोफ़ाइल मालिक की ओर से चलाया जा रहा है मोड का इस्तेमाल करते हैं, तो DPC यह मैनेज करता है कि आपकी निजी प्रोफ़ाइल में काम से जुड़े संपर्क किसको दिखें. ज़्यादा जानकारी के लिए, डिवाइस से जुड़ी नीति बनाना कंट्रोलर के तौर पर भी सेट किया जा सकता है.

निजी प्रोफ़ाइल से ऑफ़िस के संपर्कों को खोजने की सुविधा डिफ़ॉल्ट रूप से चालू होती है.

वर्क ट्रैफ़िक के लिए सुरक्षित नेटवर्क कनेक्शन पक्का करें

डिवाइस मालिक मोड या प्रोफ़ाइल मालिक मोड, डिवाइस नीति में चल रहा है कंट्रोलर, हमेशा चालू रहने वाले वर्चुअल प्राइवेट नेटवर्क (वीपीएन) कनेक्शन का इस्तेमाल ऐप्लिकेशन को किसी खास वीपीएन ऐप्लिकेशन से ट्रैफ़िक भेजने के लिए मजबूर करना बायपास किया गया. हमेशा चालू रहने वाले VPN कनेक्शन का इस्तेमाल करके, DPC यह पक्का कर सकता है कि वर्क प्रोफ़ाइल या मैनेज किए जा रहे डिवाइस का ट्रैफ़िक, वीपीएन सेवा से होकर गुज़रता है और उपयोगकर्ता के हस्तक्षेप के बिना. यह प्रक्रिया के लिए एक सुरक्षित नेटवर्क कनेक्शन बनाती है वर्क प्रोफ़ाइल में लगातार ट्रैफ़िक आ रहा है.

हमेशा चालू रहने वाले वीपीएन कनेक्शन के बारे में जानकारी

सिस्टम फ़्रेमवर्क के हिस्से के तौर पर, वीपीएन रूटिंग अपने-आप मैनेज हो जाते हैं, ताकि उपयोगकर्ता, वीपीएन सेवा को बायपास नहीं कर सकता. अगर वीपीएन सेवा बंद होने के दौरान डिसकनेक्ट हो जाती है लॉकडाउन मोड चालू है. इसलिए, ओपन इंटरनेट पर ट्रैफ़िक लीक नहीं हो सकता. आवेदनों के लिए लागू करना VpnService, हमेशा चालू रहने वाला वीपीएन, सुरक्षित वीपीएन कनेक्शन को मैनेज करने का फ़्रेमवर्क उपलब्ध कराता है एक भरोसेमंद सर्वर देने के लिए तैयार हैं. वीपीएन सेवा, वीपीएन सेवा को अपने-आप रीस्टार्ट कर देती है ऐप्लिकेशन के अपडेट पर कनेक्शन उपलब्ध होगा, भले ही कनेक्शन वाई-फ़ाई से जुड़ा हो या मोबाइल. अगर डिवाइस फिर से चालू होता है, तो फ़्रेमवर्क वीपीएन कनेक्शन को रीस्टार्ट करता है.

वीपीएन सेवा का कनेक्शन, उपयोगकर्ता के लिए पारदर्शी है. कंपनी के मालिकाना हक वाला डिवाइस है, तो उपयोगकर्ता को इसके लिए सहमति संवाद की पुष्टि करने की ज़रूरत नहीं है: वीपीएन को हमेशा चालू रहने वाले मोड में. उपयोगकर्ता की VPN नेटवर्क सेटिंग मैन्युअल रूप से हमेशा चालू रहने वाला कनेक्शन.

अगर DISALLOW_CONFIG_VPN true है, तो उपयोगकर्ता को वीपीएन कॉन्फ़िगर करने से रोका जा सकता है. सक्षम करें DISALLOW_DEBUGGING_FEATURES अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है का इस्तेमाल करें. इससे उपयोगकर्ताओं को adb डीबग कमांड का इस्तेमाल करके हमेशा चालू रहने वाले वीपीएन में बदलाव करने से रोका जा सकता है. उपयोगकर्ता को वीपीएन अनइंस्टॉल करने से रोकने के लिए, कॉल करें DevicePolicyManager.setUninstallBlocked.

वीपीएन सेवा सेट अप करना

Android के लिए आपके एंटरप्राइज़ समाधान का इस्तेमाल करने वाला संगठन, वीपीएन सेट अप करता है.

  1. ऐसा वीपीएन ऐप्लिकेशन इंस्टॉल करें जो VpnService. वीपीएन से जुड़ी चालू सेवाओं को ढूंढने के लिए, उस इंटेंट फ़िल्टर का इस्तेमाल करें जो ऐक्शन गेम VpnService.SERVICE_INTERFACE.
  2. घोषणा करें VpnService अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ऐप्लिकेशन के मेनिफ़ेस्ट में 'अनुमति दी गई' के तौर पर सेट किया जाता है BIND_VPN_SERVICE.
  3. कॉन्फ़िगर करें VpnService अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इसलिए इसे सिस्टम शुरू कर देता है. वीपीएन ऐप्लिकेशन को अपने-आप चालू होने के लिए सेट न करें सिस्टम बूट को सुनना और अपने लाइफ़ साइकल को कंट्रोल करना.
  4. मैनेज किया जा रहा खाता सेट करें कॉन्फ़िगरेशन वीपीएन ऐप्लिकेशन (यहां दिया गया उदाहरण देखें).

हमेशा-चालू VPN कनेक्शन सक्षम करें

DPC किसी खास ऐप्लिकेशन के ज़रिए हमेशा चालू रहने वाले वीपीएन कनेक्शन को कॉन्फ़िगर कर सकता है कॉल किया जा रहा है DevicePolicyManager.setAlwaysOnVpnPackage().

यह कनेक्शन अपने-आप मिल जाता है और डिवाइस को फिर से चालू करने के बाद भी यह बना रहता है. अगर आपने lockdownEnabled गलत है. इसके सही समय से नेटवर्क ट्रैफ़िक असुरक्षित हो सकता है फ़ोन फिर चालू होता है और वीपीएन कनेक्ट हो जाता है. अगर आपको YouTube पर वीपीएन काम नहीं करने पर, इंटरनेट कनेक्शन बेहतर होगा या वीपीएन ज़रूरी नहीं है.

हमेशा चालू रहने वाले वीपीएन कनेक्शन की पुष्टि करें

DPC हमेशा चालू रहने वाले वीपीएन को मैनेज करने वाले पैकेज का नाम पढ़ सकता है इसके साथ मौजूदा उपयोगकर्ता के लिए कनेक्शन DevicePolicyManager.getAlwaysOnVpnPackage(). अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

अगर ऐसा कोई पैकेज नहीं है या वीपीएन को सिस्टम की सेटिंग में बनाया गया था null ऐप्लिकेशन दिखाया गया.

उदाहरण

TestDPC ऐप्लिकेशन में, AlwaysOnVpnFragment.java इन एपीआई का इस्तेमाल हमेशा चालू रहने वाले वीपीएन कनेक्शन की सेटिंग चालू करने के लिए करता है.

नीचे दिए गए उदाहरण में:

  • प्रबंधित कॉन्फ़िगरेशन वीपीएन सेवा, DevicePolicyManager इसका इस्तेमाल करके setApplicationRestrictions() तरीका.
  • मैनेज किए जा रहे कॉन्फ़िगरेशन, आर्बिट्रेरी की-वैल्यू पेयर का इस्तेमाल करते हैं. यह ऐप्लिकेशन उदाहरण के तौर पर दिया गया है इसका इस्तेमाल वीपीएन की नेटवर्क सेटिंग को कॉन्फ़िगर करने के लिए करता है (देखें कि) मैनेज किए जा रहे कॉन्फ़िगरेशन देखें).
  • इस उदाहरण में, Android पैकेज इंस्टॉलर को ब्लॉकलिस्ट में जोड़ा गया है, इसलिए वीपीएन पर सिस्टम पैकेज अपडेट करने के लिए. उपयोगकर्ता के सभी नेटवर्क ट्रैफ़िक में वर्क प्रोफ़ाइल या डिवाइस, पैकेज को छोड़कर इस वीपीएन ऐप्लिकेशन का इस्तेमाल करता है इंस्टॉलर; इसके अपडेट ओपन इंटरनेट का इस्तेमाल करते हैं.
  • इसके बाद DevicePolicyManager, वीपीएन पैकेज का इस्तेमाल किया जा रहा है setAlwaysOnVpnPackage(), और लॉकडाउन मोड चालू करें.

Kotlin

// Set VPN's managed configurations
val config = Bundle().apply {
  putString(Extras.VpnApp.ADDRESS, "192.0.2.0")
  putString(Extras.VpnApp.IDENTITY, "vpn.account1")
  putString(Extras.VpnApp.CERTIFICATE, "keystore://auth_certificate")
  putStringArray(Extras.VpnApp.DENYLIST,
        arrayOf("com.android.packageinstaller"))
}

val dpm = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager

val admin = myDeviceAdminReceiver.getComponentName(this)

// Name of package to update managed configurations
val vpnPackageName = "com.example.vpnservice"

// Associate managed configurations with DeviceAdminReceiver
dpm.setApplicationRestrictions(admin, vpnPackageName, config)

// Enable always-on VPN connection through VPN package
try {
  val lockdownEnabled = true
  dpm.setAlwaysOnVpnPackage(admin, vpnPackageName, lockdownEnabled)
} catch (ex: Exception) {
  throw PolicyException()
}

Java

// Set VPN's managed configurations
final Bundle config = new Bundle();
config.putString(Extras.VpnApp.ADDRESS, "192.0.2.0");
config.putString(Extras.VpnApp.IDENTITY, "vpn.account1");
config.putString(Extras.VpnApp.CERTIFICATE, "keystore://auth_certificate");
config.putStringArray(Extras.VpnApp.DENYLIST,
                      new String[]{"com.android.packageinstaller"});

DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);

ComponentName admin = myDeviceAdminReceiver.getComponentName(this);

// Name of package to update managed configurations
final String vpnPackageName = "com.example.vpnservice";

// Associate managed configurations with DeviceAdminReceiver
dpm.setApplicationRestrictions(admin, vpnPackageName, config);

// Enable always-on VPN connection through VPN package
try {
  boolean lockdownEnabled = true;
  dpm.setAlwaysOnVpnPackage(admin, vpnPackageName, lockdownEnabled));
} catch (Exception ex) {
  throw new PolicyException(...);
}

सभी क्षेत्रों के लिए एक ही वायरलेस नेटवर्क आईडी सेट अप करना

डिवाइस मालिक मोड या प्रोफ़ाइल मालिक मोड, डिवाइस नीति में चल रहा है कंट्रोलर (DPC) एक से ज़्यादा सर्टिफ़िकेट देने वाली संस्था (CA) के सर्टिफ़िकेट जोड़ सकता है सिंगल वायरलेस नेटवर्क कॉन्फ़िगरेशन के साथ काम करता है. इस कॉन्फ़िगरेशन के साथ, किसी डिवाइस को उन वायरलेस ऐक्सेस पॉइंट से कनेक्ट कर सकता है जिनका नेटवर्क नाम एक ही है, या सर्विस सेट आइडेंटिफ़ायर (SSID), लेकिन अलग सीए के साथ कॉन्फ़िगर किया गया हो सर्टिफ़िकेट. यह तब फ़ायदेमंद होता है, जब आपके संगठन के वायरलेस नेटवर्क कई भौगोलिक क्षेत्रों में मौजूद हैं, और हर क्षेत्र के लिए अलग-अलग सर्टिफ़िकेट देने वाली संस्था या निकाय का नाम. उदाहरण के लिए, कानूनी हस्ताक्षर के लिए किसी स्थानीय ऐसी संस्था जिसे क्षेत्रीय सीए की ज़रूरत है.

ध्यान दें: Android पर setCaCertificate एपीआई 18 (जैली बीन) के बाद से काम करता है, लेकिन आईटी एडमिन को अपने नेटवर्क का प्रावधान करना होगा हर सीए के साथ अलग-अलग करके, यह पक्का किया जा सकता है कि हर डिवाइस पर बिना किसी रुकावट के ऑथेंटिकेशन हो ऐक्सेस पॉइंट, भले ही वह मौजूद हो.

सर्वर की पहचान करने के लिए, सीए सर्टिफ़िकेट की जानकारी दें

X.509 सर्टिफ़िकेट की ऐसी सूची बनाने के लिए जो उसी सर्टिफ़िकेट का इस्तेमाल करने वाले सर्वर की पहचान करता है SSID, WifiEnterpriseConfig.setCaCertificates() का इस्तेमाल करके वायरलेस कॉन्फ़िगरेशन में सभी ज़रूरी सीए (सर्टिफ़िकेट देने वाली संस्था) को शामिल करें.

किसी सर्वर का सर्टिफ़िकेट तब मान्य होता है, जब उसका सीए, दिए गए सर्टिफ़िकेट में से किसी एक से मेल खाता हो. डिफ़ॉल्ट नाम, सर्टिफ़िकेट को अपने-आप असाइन कर दिए जाते हैं. साथ ही, इनका इस्तेमाल कॉन्फ़िगरेशन. कॉन्टेंट बनाने WifiManager अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है सर्टिफ़िकेट को इंस्टॉल करता है और कॉन्फ़िगरेशन को अपने-आप सेव करता है. ऐसा तब होता है, जब नेटवर्क चालू है. साथ ही, कॉन्फ़िगरेशन के चालू होने पर, सर्टिफ़िकेट को हटा देता है हटाया गया.

वायरलेस कॉन्फ़िगरेशन से जुड़े सभी CA सर्टिफ़िकेट पाने के लिए, इसका इस्तेमाल करें इनकी सूची देने के लिए WifiEnterpriseConfig.getCaCertificates() X509Certificate ऑब्जेक्ट.

एक से ज़्यादा CA सर्टिफ़िकेट का इस्तेमाल करके, वायरलेस कॉन्फ़िगरेशन जोड़ें

  1. सर्वर की पहचान की पुष्टि करें:
    1. X.509 CA सर्टिफ़िकेट लोड करें.
    2. क्लाइंट की निजी कुंजी और प्रमाणपत्र लोड करें. सर्टिफ़िकेट फ़ाइल को पढ़ने के तरीके के उदाहरण के लिए, एचटीटीपीएस और एसएसएल के साथ सुरक्षा देखें.
  2. कोई नया ऑफ़र बनाएं WifiConfiguration अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है और उसका SSID और कुंजी का मैनेजमेंट सेट कर सकता है.
  3. सेट अप करें WifiEnterpriseConfig अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस WifiConfiguration पर इंस्टेंस.
    1. इसकी सूची के साथ सर्वर की पहचान करें X509Certificate अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है जिन चीज़ों का इस्तेमाल हो रहा है setCaCertificates().
    2. क्लाइंट क्रेडेंशियल, पहचान, और पासवर्ड सेट करें.
    3. एक्सटेंसिबल ऑथेंटिकेशन प्रोटोकॉल (ईएपी) और फ़ेज़ 2 तरीके को का हिस्सा है.
  4. नेटवर्क को इसके साथ जोड़ें WifiManager.
  5. नेटवर्क चालू करें. WifiManager कॉन्फ़िगरेशन को अपने-आप सेव करता है सेटअप.

इस उदाहरण में, सभी चरणों को एक साथ दिखाया गया है:

Kotlin

// Verify the server's identity
val caCert0 = getCaCert("cert0.crt")
val caCert1 = getCaCert("cert1.crt")
val clientKey = getClientKey()
val clientCert = getClientCert()

// Create Wi-Fi configuration
val wifiConfig = WifiConfiguration().apply {
  SSID = "mynetwork"
  allowedKeyManagement.set(KeyMgmt.WPA_EAP)
  allowedKeyManagement.set(KeyMgmt.IEEE8021X)

  // Set up Wi-Fi enterprise configuration
  enterpriseConfig.setCaCertificates(arrayOf<X509Certificate>(caCert0, caCert1))
  enterpriseConfig.setClientKeyEntry(clientKey, clientCert)
  enterpriseConfig.setIdentity("myusername")
  enterpriseConfig.setEapMethod(Eap.TLS)
  enterpriseConfig.setPhase2Method(Phase2.NONE)
}


// Add network
val wifiManager = getSystemService(Context.WIFI_SERVICE) as WifiManager
val netId = wifiManager.addNetwork(wifiConfig)

// Enable network
if (netId < 0) {
  // Error creating new network
} else {
  wifiManager.enableNetwork(netId, true)
}

Java

// Verify the server's identity
X509Certificate caCert0 = getCaCert("cert0.crt");
X509Certificate caCert1 = getCaCert("cert1.crt");
PrivateKey clientKey = getClientKey();
X509Certificate clientCert = getClientCert();

// Create Wi-Fi configuration
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = "mynetwork";
wifiConfig.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
wifiConfig.allowedKeyManagement.set(KeyMgmt.IEEE8021X);

// Set up Wi-Fi enterprise configuration
wifiConfig.enterpriseConfig.setCaCertificates(new X509Certificate[] {caCert0, caCert1});
wifiConfig.enterpriseConfig.setClientKeyEntry(clientKey, clientCert);
wifiConfig.enterpriseConfig.setIdentity("myusername");
wifiConfig.enterpriseConfig.setEapMethod(Eap.TLS);
wifiConfig.enterpriseConfig.setPhase2Method(Phase2.NONE);

// Add network
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
int netId = wifiManager.addNetwork(wifiConfig);

// Enable network
if (netId < 0) {
  // Error creating new network
} else {
  wifiManager.enableNetwork(netId, true);
}

वर्क प्रोफ़ाइल के लिए एक अलग डायलर तय करें

किसी वर्क प्रोफ़ाइल में अलग से डायलर ऐप्लिकेशन को इस्तेमाल करने के लिए, अनुमति वाली सूची बनाई जा सकती है. यह डायलर हो सकता है या कोई ऐसा वॉइस ओवर आईपी (VoIP) ऐप्लिकेशन हो सकता है जो ConnectionService अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कॉलिंग बैकएंड के लिए एपीआई. यह एक जैसी इंटीग्रेटेड सिस्टम यूआई डायलिंग की सुविधा देता है काम करने की क्षमता के साथ काम करने में, वर्क प्रोफ़ाइल में VoIP ऐप्लिकेशन का अनुभव डायलर की सुविधा का इस्तेमाल कर सकते हैं. वर्क प्रोफ़ाइल वाले खातों पर आने वाले कॉल इन्हें इनकमिंग कॉल से निजी कॉल करने वाले खातों पर लागू किया जाता है.

उपयोगकर्ता, अनुमति वाली सूची में शामिल वर्क डायलर से कॉल करने और पाने का विकल्प चुन सकता है साइन इन करें. उस डायलर से किए गए सभी कॉल या ऑफ़िस पर इनकमिंग कॉल फ़ोन खाते, इन्हें वर्क प्रोफ़ाइल के CallLog अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कंपनी. वर्क डायलर, सिर्फ़ काम से जुड़े कॉल लॉग को बनाए रखता है. साथ ही, उसे सिर्फ़ इनके ऐक्सेस की ज़रूरत होती है कार्यालय संपर्क. आने वाले सर्किट-स्विच कॉल को प्राइमरी डायलर मैनेज करता है और निजी कॉल लॉग में सेव किया जाता है. अगर वर्क प्रोफ़ाइल मिटा दी गई है, तो कॉल लॉग उस वर्क प्रोफ़ाइल से जुड़ी सभी वर्क प्रोफ़ाइल को भी मिटा दिया जाता है डेटा शामिल है.

तीसरे पक्ष के ऐप्लिकेशन को ConnectionService लागू करना होगा

तीसरे पक्ष के VoIP ऐप्लिकेशन जिन्हें फ़ोन कॉल करने और कॉल करने की ज़रूरत होती है पहले से मौजूद फ़ोन ऐप्लिकेशन में इंटिग्रेट किए गए ऐप्लिकेशन, ConnectionService अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एपीआई. यह वर्क कॉलिंग के लिए इस्तेमाल होने वाली किसी VoIP सेवा के लिए ज़रूरी है. ये ऐप्लिकेशन उनकी कॉल को ट्रेडिशनल सेल्युलर कॉल की तरह इस्तेमाल करके, उदाहरण के लिए, वे बिल्ट-इन सिस्टम डायलर और कॉल लॉग में दिखाई देते हैं. अगर ऐप्लिकेशन को लागू करना ConnectionService अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है को वर्क प्रोफ़ाइल में इंस्टॉल किया जाता है, तो इसे सिर्फ़ डायलर ऐक्सेस कर सकता है उस वर्क प्रोफ़ाइल में इंस्टॉल किया गया हो.

डेवलपर के लागू करने के बाद ConnectionService, तो उन्हें इसे ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में जोड़ना होगा और PhoneAccount के साथ TelecomManager. एक फ़ोन खाता, फ़ोन कॉल करने या पाने का एक अलग तरीका दिखाता है. हर एक के लिए एक से ज़्यादा PhoneAccounts हो सकते हैं ConnectionService. फ़ोन खाता रजिस्टर होने के बाद, उपयोगकर्ता इसे डायलर सेटिंग के ज़रिए चालू कर सकती हैं.

सिस्टम के यूज़र इंटरफ़ेस (यूआई) का इंटिग्रेशन और सूचनाएं

सिस्टम के यूज़र इंटरफ़ेस (यूआई) की मदद से, लोगों को लगातार एक जैसी और इंटिग्रेटेड डायलिंग अनुभव मिलता है उन तीसरे पक्ष के ऐप्लिकेशन के लिए जो ConnectionService अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कॉल करने के लिए बैकएंड के रूप में एपीआई. अगर वर्क प्रोफ़ाइल में ऐप्लिकेशन का इस्तेमाल किया जा रहा है, तो ब्रीफ़केस आइकॉन, इनकमिंग कॉल पर और स्टेटस बार में दिखता है. लागू करने वाला ऐप्लिकेशन वर्क प्रोफ़ाइल में इंस्टॉल किया गया ConnectionService, सिस्टम डायलर या अलग वर्क डायलर बना सकते हैं. ये कोई एक ऐप्लिकेशन या अलग-अलग ऐप्लिकेशन.

डायलर ऐप्लिकेशन यह तय करता है कि वह कॉल कर रहा है या कॉल कर रहा है झंडे की जाँच कर रहा है android.telecom.Call.Details.PROPERTY_ENTERPRISE_CALL. अगर कॉल एक वर्क कॉल है, तो डायलर एक कस्टम कॉल में वर्क बैज (ब्रीफ़केस आइकॉन):

Kotlin

// Call placed through a work phone account. getCurrentCall() is defined by the
// dialer.
val call = getCurrentCall()
if (call.hasProperty(android.telecom.Call.Details.PROPERTY_ENTERPRISE_CALL)) {
  // Set briefcase icon
}

Java

// Call placed through a work phone account. getCurrentCall() is defined by the
// dialer.
Call call = getCurrentCall();
if (call.hasProperty(android.telecom.Call.Details.PROPERTY_ENTERPRISE_CALL)) {
  // Set briefcase icon
}