iOS को टारगेट करने वाले ARCore एक्सटेंशन के लिए, Cloud anchors डेवलपर गाइड

अपने ऐप्लिकेशन में Cloud ऐंकर इस्तेमाल करने का तरीका जानें.

ज़रूरी शर्तें

पक्का करें कि आपको फ़ंड के बुनियादी सिद्धांत पता हैं. साथ ही, आगे बढ़ने से पहले, ARCore सेशन को कॉन्फ़िगर करने का तरीका जानें.

अगर आपके लिए क्लाउड ऐंकर नया है, तो पक्का करें कि आपने ऐंकर और क्लाउड ऐंकर के काम करने का तरीका समझ लिया है.

ARCore एपीआई को चालू करें

अपने ऐप्लिकेशन में Cloud ऐंकर का इस्तेमाल करने से पहले, आपको नए या मौजूदा Google Cloud Platform प्रोजेक्ट में ARCore API की सुविधा चालू करनी होगी. यह सेवा क्लाउड ऐंकर को होस्ट करने, सेव करने, और ठीक करने के लिए ज़िम्मेदार है.

अपने ऐप्लिकेशन को ARCore API पर कॉल करने की अनुमति दें

आपको क्लाउड ऐंकर को होस्ट करने और उनका समाधान करने के लिए, अपने ऐप्लिकेशन को ARCore एपीआई को कॉल करने की अनुमति देनी होगी. ऐसे क्लाउड ऐंकर को होस्ट करने और उनका समाधान करने के लिए जो 1 दिन से ज़्यादा के TTL (टीटीएल) का इस्तेमाल करते हैं, उन ऐप्लिकेशन को टोकन (JWT का हस्ताक्षर किया हुआ) इस्तेमाल करने की अनुमति देनी होगी.

टोकन (JWT पर हस्ताक्षर) की अनुमति

1 और 365 दिनों के बीच TTL (टीटीएल) वाले क्लाउड ऐंकर को होस्ट और ठीक करने के लिए, टोकन वाले हस्ताक्षर (JWT) का इस्तेमाल करें. फ़िलहाल, हस्ताक्षर किया हुआ सिर्फ़ इस तरह का टोकन JSON वेब टोकन (JWT) है. यह टोकन किसी Google सेवा खाते से हस्ताक्षर किया जाना चाहिए.

  1. बदलाव करें > प्रोजेक्ट सेटिंग > XR प्लग-इन मैनेजमेंट > ARCore एक्सटेंशन पर जाएं और iOS सहायता चालू है को चुनें.

  2. iOS की पुष्टि करने की रणनीति वाले ड्रॉप-डाउन मेन्यू से, पुष्टि करने वाले टोकन का विकल्प चुनें.

सर्वर एंडपॉइंट के लिए ज़रूरी शर्तें

iOS के लिए टोकन जनरेट करने के लिए, आपके पास अपने सर्वर पर ऐसा एंडपॉइंट होना चाहिए जो नीचे दी गई ज़रूरी शर्तों को पूरा करता हो:

  1. अनुमति देने का आपका तरीका, एंडपॉइंट की सुरक्षा करता है.
  2. हर बार एंडपॉइंट को एक नया टोकन जनरेट करना होगा, ताकि हर उपयोगकर्ता को एक खास टोकन मिले. साथ ही, टोकन की समयसीमा भी कभी खत्म नहीं होती.

सेवा खाता और साइनिंग कुंजी बनाना

Google सेवा खाता और साइनिंग कुंजी बनाने के लिए यह तरीका अपनाएं.

  1. Google Cloud Platform Console के नेविगेशन मेन्यू में, एपीआई और सेवाएं > क्रेडेंशियल पर जाएं.
  2. अपनी पसंद के प्रोजेक्ट चुनें और क्रेडेंशियल बनाएं > सेवा खाता पर क्लिक करें.
  3. सेवा खाते की जानकारी में, नए खाते का नाम लिखें और बनाएं पर क्लिक करें.
  4. सेवा खाते की अनुमतियां पेज पर, भूमिका चुनें ड्रॉप-डाउन मेन्यू पर जाएं. सेवा खाते > सेवा खाता टोकन क्रिएटर चुनें और जारी रखें पर क्लिक करें.
  5. उपयोगकर्ताओं को इस सेवा खाते का ऐक्सेस दें पेज पर, हो गया पर क्लिक करें. इससे, आपको वापस एपीआई और सेवाएं > क्रेडेंशियल पर ले जाया जाएगा.
  6. क्रेडेंशियल पेज पर, नीचे की ओर स्क्रोल करके, सेवा खाते सेक्शन पर जाएं और अभी-अभी बनाए गए खाते के नाम पर क्लिक करें.
  7. सेवा खाते का ब्यौरा पेज पर, नीचे कुंजी सेक्शन तक स्क्रोल करें और कुंजी जोड़ें > नई कुंजी बनाएं चुनें.
  8. कुंजी टाइप के तौर पर JSON चुनें और बनाएं पर क्लिक करें. यह JSON फ़ाइल डाउनलोड करता है, जिसमें आपकी मशीन के लिए निजी कुंजी मौजूद होती है. JSON कुंजी फ़ाइल डाउनलोड करने के बाद, उसे किसी सुरक्षित जगह पर सेव करें.

JSON फ़ाइल में एक निजी कुंजी है, जिसे सार्वजनिक नहीं किया जाना चाहिए. इसे GitHub जैसे सोर्स कोड के डेटा स्टोर करने की जगह पर इस्तेमाल न करें.

अपने सर्वर पर टोकन बनाना

अपने सर्वर पर नए टोकन (JWT) बनाने के लिए, JWT की लाइब्रेरी और वह JSON फ़ाइल इस्तेमाल करें जिसे आपने नए सेवा खाते से सुरक्षित तरीके से डाउनलोड किया था.

अपनी डेवलपमेंट मशीन पर टोकन बनाना

अपनी डेवलपमेंट मशीन पर JWT जनरेट करने के लिए, नीचे दिए गए oauth2l निर्देश का इस्तेमाल करें:

// "oauth2l" uses a lowercase L, not a 1, as the last character.
// Specifying an empty cache location using the --cache flag is necessary
// to ensure that a different token is produced each time.
oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"

आपको जो स्ट्रिंग मिल रही है उसमें काट-छांट करना न भूलें. अतिरिक्त स्पेस या न्यूलाइन वर्णों का इस्तेमाल करने पर एपीआई, टोकन को अस्वीकार कर सकता है.

टोकन पर हस्ताक्षर करें

JWT पर हस्ताक्षर करने के लिए, RS256 एल्गोरिदम और इन दावों का इस्तेमाल करें:

  • iss — सेवा खाते का ईमेल पता.
  • sub — सेवा खाते का ईमेल पता.
  • iat — टोकन जनरेट होने के बाद, सेकंड में यूनिक्स का समय.
  • expiat + 3600 (1 घंटा). टोकन की समयसीमा, सेकंड में खत्म हो जाती है.
  • aud — दर्शक. https://arcore.googleapis.com/ सेट होना चाहिए.

JWT पेलोड के लिए गैर-मानक दावों की ज़रूरत नहीं होती है. हालांकि, आपको अपने uid दावे से मिलते-जुलते उपयोगकर्ता की पहचान करने के लिए यह फ़ायदेमंद लग सकता है.

अगर आप अपने JWT को जनरेट करने के लिए किसी अलग तरीके का इस्तेमाल करते हैं, जैसे कि Google की ओर से मैनेज किए जाने वाले एनवायरमेंट में Google API का इस्तेमाल करना, तो इस सेक्शन में मौजूद दावों के साथ अपने JWT पर हस्ताक्षर करना न भूलें. सबसे पहले, पक्का करें कि ऑडियंस सही है.

ARCore सेशन में कोई टोकन पास करें

टोकन मिलने के बाद, उसे ARAnchorManager.SetAuthToken() का इस्तेमाल करके अपने ARCore सेशन में पास करें:

// Designate the token to use when authorizing with the ARCore API
// on the iOS platform. The API should be called each time the application's token is refreshed.
ARAnchorManager.SetAuthToken(string authToken);

सेशन में टोकन पास करने पर इन बातों का ध्यान रखें:

  • किसी ऐंकर को होस्ट करने या उसका समाधान करने से पहले, आपको अनुमति वाले किसी मान्य टोकन को पास करना होगा.
  • ARCore, अनुमति वाले उन टोकन को अनदेखा कर देता है जिनमें स्पेस या विशेष वर्ण शामिल होते हैं.
  • अगर सेशन किसी मान्य एपीआई पासकोड से बनाया गया है, तो ARCore, अनुमति वाले टोकन को अनदेखा कर देता है. अगर आपने पहले एपीआई पासकोड का इस्तेमाल किया था और अब आपको इसकी ज़रूरत नहीं है, तो हमारा सुझाव है कि आप Google Cloud Platform Console में इसे मिटाएं. साथ ही, उपयोगकर्ताओं को नए वर्शन पर माइग्रेट करने के बाद, इसे अपने ऐप्लिकेशन से हटाएं.
  • आम तौर पर, टोकन की समयसीमा एक घंटे के बाद खत्म हो जाती है. अगर आपके टोकन का इस्तेमाल करते समय उसकी समयसीमा खत्म हो जाती है, तो नया टोकन पाएं और नए टोकन के साथ ARAnchorManager.SetAuthToken(string authToken) को कॉल करें.

एपीआई कुंजी की अनुमति

24 घंटे (1 दिन) तक के TTL (टीटीएल) को होस्ट करने और उनका समाधान करने के लिए एपीआई कुंजी की अनुमति का इस्तेमाल करें.

ARCore SDK टूल 1.24.0 या इसके बाद के वर्शन के साथ बनाए गए नए Unity प्रोजेक्ट के लिए, अनुमति देने की डिफ़ॉल्ट रणनीति DoNotUse है. इससे, गैर-ज़रूरी लाइब्रेरी का इस्तेमाल करके ऐप्लिकेशन बनने से रोका जा सकता है. अगर आपका ऐप्लिकेशन क्लाउड ऐंकर का इस्तेमाल करता है और उसे ARCore SDK 1.24.0 या उसके बाद के वर्शन का इस्तेमाल करके बनाया गया है, तो आपको प्रोजेक्ट सेटिंग > XR प्लग-इन मैनेजमेंट > ARCore एक्सटेंशन में जाकर, अनुमति पाने की सुविधा मैन्युअल तरीके से चालू करनी होगी.

  1. बदलाव करें > प्रोजेक्ट सेटिंग > XR प्लग-इन मैनेजमेंट > ARCore एक्सटेंशन पर जाएं और iOS सहायता चालू है को चुनें.

  2. iOS की पुष्टि करने की रणनीति वाले ड्रॉप-डाउन मेन्यू से, एपीआई पासकोड का विकल्प चुनें.

  3. Google Cloud Console से, इस प्रोजेक्ट के लिए एपीआई पासकोड पाएं.

  4. बदलाव करें > प्रोजेक्ट सेटिंग > XR प्लग-इन मैनेजमेंट > ARCore एक्सटेंशन पर जाएं और अपनी एपीआई कुंजी Cloud ऐंकर API कुंजियां फ़ील्ड में जोड़ें.

अपने ऐप्लिकेशन में क्लाउड ऐंकर की सुविधा चालू करना

अपने ऐप्लिकेशन को ARCore API पर कॉल करने की अनुमति देने के बाद, आपको अपने ऐप्लिकेशन में Cloud ऐंकर की सुविधा चालू करनी होगी.

  1. बदलाव करें > प्रोजेक्ट सेटिंग > XR प्लग-इन मैनेजमेंट > ARCore एक्सटेंशन पर जाएं. पक्का करें कि iOS के लिए सहायता चालू है को चुना गया है.
  2. ज़रूरी सुविधाएं में जाकर, क्लाउड ऐंकर चुनें.

सेशन के कॉन्फ़िगरेशन में क्लाउड ऐंकर की सुविधाएं चालू करना

जब आपके ऐप्लिकेशन में क्लाउड ऐंकर की सुविधा चालू हो जाती है, तो अपने ऐप्लिकेशन के एआर सेशन के कॉन्फ़िगरेशन में, क्लाउड ऐंकर की सुविधा चालू करें, ताकि यह ARCore API के साथ काम कर सके:

  1. पक्का करें कि प्रोजेक्ट एसेट फ़ोल्डर में ARCoreExtensionsConfig स्क्रिप्ट वाला ऑब्जेक्ट हो. एसेट बनाने के लिए, एसेट पैनल पर दायां क्लिक करें और बनाएं > XR > ARCore एक्सटेंशन कॉन्फ़िगरेशन चुनें.
  2. ARCoreextensionsConfig स्क्रिप्ट वाला ऑब्जेक्ट चुनें और उसे अपने एसेट फ़ोल्डर में चुनें. इसके बाद, Cloud ऐंकर मोड को चालू है पर सेट करें.

  3. ARCoreExtensionsConfig कॉन्फ़िगरेशन का इस्तेमाल करने के लिए, ARCore एक्सटेंशन गेम ऑब्जेक्ट को कॉन्फ़िगर करें. हैरारकी पैनल में, ARCore एक्सटेंशन गेम ऑब्जेक्ट को ढूंढें जिसे आपने शुरुआत में ARCore एक्सटेंशन सेट अप करते समय बनाया था. साथ ही, ARCore एक्सटेंशन कॉन्फ़िगरेशन फ़ील्ड को ARCoreExtensionsConfig स्क्रिप्ट वाले ऑब्जेक्ट से जोड़ें, ताकि वह आपके एसेट फ़ोल्डर में मौजूद रहे.

क्लाउड ऐंकर होस्ट करना

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

ARCore क्लाउड ऐंकर मैनेजमेंट एपीआई का इस्तेमाल करके, होस्ट किए गए ऐंकर की लाइफ़ को भी बढ़ाया जा सकता है.

किसी क्लाउड ऐंकर को पूरी तरह से होस्ट करने के लिए, आपके ऐप्लिकेशन को यह तरीका अपनाना होगा:

  1. ARAnchorManager.HostCloudAnchorAsync() को कॉल करें.
  2. जब तक वादे का नतीजा नहीं मिलता, तब तक कोरूटीन शुरू करें. ज़्यादा जानकारी के लिए, Unity में कोरूटीन देखें.
  3. गड़बड़ी ठीक न होने पर, गड़बड़ी के कोड को समझें और देखें कि क्या नतीजे की स्थिति है.
  4. नतीजे के साथ Cloud ऐंकर आईडी को अन्य क्लाइंट के साथ शेयर करें और ARAnchorManagerExtensions.ResolveCloudAnchorAsync() का इस्तेमाल करके, इसका इस्तेमाल क्लाउड ऐंकर को ठीक करने के लिए करें.

फ़ीचर पॉइंट की मैपिंग क्वालिटी की जांच करना

ARCoreExtensions.FeatureMapQuality किसी कैमरा पोज़ से पिछले कुछ सेकंड में ARCore की देखी गई सुविधाओं के पॉइंट की क्वालिटी दिखाता है. आम तौर पर, अच्छी क्वालिटी की सुविधाओं का इस्तेमाल करके होस्ट किए गए क्लाउड ऐंकर ज़्यादा सटीक तरीके से काम करते हैं. कैमरे के पोज़ के लिए फ़ीचर मैप की क्वालिटी का अनुमान लगाने के लिए, ARAnchorManagerExtensions.EstimateFeatureMapQualityForHosting() का इस्तेमाल करें.

वैल्यू जानकारी
Insufficient पिछले कुछ सेकंड में, पोज़ से पहचाने गए फ़ीचर पॉइंट की क्वालिटी अच्छी नहीं थी. यह स्थिति बताती है कि ARCore को क्लाउड ऐंकर को ठीक करने में ज़्यादा मुश्किल होगी. उपयोगकर्ता को डिवाइस को एक जगह से दूसरी जगह ले जाने के लिए बढ़ावा दें, ताकि वे जिस क्लाउड ऐंकर को होस्ट करना चाहते हैं उसे अलग-अलग ऐंगल से देखा जा सके.
Sufficient ऐसा हो सकता है कि पिछले कुछ सेकंड में पोज़ से पहचाने गए फ़ीचर पॉइंट की क्वालिटी, ARCore के लिए क्लाउड ऐंकर को सही तरीके से हल करने के लिए काफ़ी हो. हालांकि, हल किए गए पोज़िशन के सटीक होने की संभावना कम हो जाएगी. उपयोगकर्ता को डिवाइस को एक जगह से दूसरी जगह ले जाने के लिए बढ़ावा दें, ताकि वे जिस क्लाउड ऐंकर को होस्ट करना चाहते हैं उसे अलग-अलग ऐंगल से देखा जा सके.
Good ऐसा हो सकता है कि पिछले कुछ सेकंड में पोज़ से पहचाने गए फ़ीचर पॉइंट की क्वालिटी, ज़्यादा सटीक होने के लिए क्लाउड ऐंकर को सही तरीके से हल करने के लिए काफ़ी हो.

पहले से होस्ट किए गए ऐंकर को ठीक करना

होस्ट किए गए क्लाउड ऐंकर को ठीक करने के लिए, ARAnchorManagerExtensions.ResolveCloudAnchorAsync() को कॉल करें. ARCore API, समय-समय पर ऐंकर की 3D सुविधा वाले मैप से विज़ुअल सुविधाओं की तुलना करता है. ऐसा करके वह ऐंकर की तुलना में उपयोगकर्ता की जगह और ओरिएंटेशन की जानकारी देता है. इसमें मिलते-जुलते शब्द मिलने पर, एपीआई होस्ट किए गए क्लाउड ऐंकर की पोज़ दिखाता है.

एक क्रम में कई क्लाउड ऐंकर के लिए, रिज़ॉल्व शुरू किया जा सकता है. एक समय में ज़्यादा से ज़्यादा 40 क्लाउड ऐंकर कार्रवाइयां मौजूद हो सकती हैं.

किसी कार्रवाई को रद्द करें या क्लाउड ऐंकर को हटाएं

ARCloudAnchor.OnDestroy() अपने-आप तब कॉल किया जाता है, जब ARCloudAnchor कॉम्पोनेंट को शामिल किए गए गेम ऑब्जेक्ट से हटा दिया जाता है. इससे, दिए गए नेटिव क्लाउड ऐंकर ऑब्जेक्ट को अलग कर दिया जाएगा और रिलीज़ कर दिया जाएगा.

किसी क्लाउड ऐंकर कार्रवाई के नतीजे की स्थिति देखना

CloudAnchorState का इस्तेमाल करके, होस्टिंग के नतीजे की स्थिति देखें या गड़बड़ियों को ठीक करने की कार्रवाई ठीक करें.

वैल्यू जानकारी
ErrorResolvingCloudIdNotFound समाधान नहीं हो सका, क्योंकि ARCore API को, दिया गया Cloud ऐंकर आईडी नहीं मिला.
ErrorHostingDatasetProcessingFailed होस्टिंग नहीं हो सकी, क्योंकि सर्वर दिए गए ऐंकर के लिए डेटासेट को प्रोसेस नहीं कर सका. डिवाइस के लिए, एनवायरमेंट से ज़्यादा डेटा इकट्ठा करने के बाद फिर से कोशिश करें.
ErrorHostingServiceUnavailable ARCore एपीआई को ऐक्सेस नहीं किया जा सका. ऐसा कई कारणों से हो सकता है. हो सकता है कि डिवाइस, हवाई जहाज़ मोड में हो या इंटरनेट कनेक्शन काम न कर रहा हो. ऐसा हो सकता है कि सर्वर को भेजे गए अनुरोध का समय खत्म हो गया हो और कोई जवाब न मिला हो. नेटवर्क कनेक्शन खराब होने, डीएनएस की उपलब्धता, फ़ायरवॉल से जुड़ी समस्याएं या ऐसी कोई भी अन्य वजह हो सकती है जो ARCore एपीआई से कनेक्ट करने के लिए डिवाइस की क्षमता पर असर डाल सकती है.
ErrorInternal इस ऐंकर के लिए होस्ट करने या उससे जुड़ी समस्या हल करने के लिए, इंटरनल गड़बड़ी का मैसेज मिला. ऐप्लिकेशन को इस गड़बड़ी को वापस पाने की कोशिश नहीं करनी चाहिए.
ErrorNotAuthorized अनुमति देने की गलत अनुमति की वजह से, ऐप्लिकेशन ARCore एपीआई से संपर्क नहीं कर सकता. अनुमति पाने की मान्य रणनीति के लिए, प्रोजेक्ट सेटिंग > XR > ARCore एक्सटेंशन देखें.
ErrorResolvingPackageTooNew क्लाउड ऐंकर को ठीक नहीं किया जा सका, क्योंकि क्लाउड ऐंकर को ठीक करने के लिए इस्तेमाल किया गया ARCore एक्सटेंशन पैकेज, पैकेज वर्शन से नया है. साथ ही, इसे होस्ट करने के लिए इस्तेमाल किए जा रहे वर्शन के साथ काम नहीं करता.
ErrorResolvingPackageTooOld क्लाउड ऐंकर को ठीक नहीं किया जा सका, क्योंकि इसका इस्तेमाल करने के लिए इस्तेमाल किया जाने वाला ARCore एक्सटेंशन पैकेज, इससे पुराने वर्शन के साथ काम नहीं करता. साथ ही, होस्ट करने के लिए इस्तेमाल किए जाने वाले वर्शन के साथ काम नहीं करता.
ErrorResourceExhausted इस ऐप्लिकेशन ने Google Cloud के दिए गए प्रोजेक्ट के लिए, अनुरोध करने की तय सीमा पूरी कर ली है. आपको Google Developers Console से, अपने प्रोजेक्ट के लिए ARCore API के लिए अतिरिक्त कोटा का अनुरोध करना चाहिए.
Success इस ऐंकर के लिए होस्ट करने वाला या हटाया गया टास्क पूरा हो गया.

होस्ट के लिए एपीआई कोटा और अनुरोधों का समाधान करना

अनुरोध की बैंडविड्थ के लिए, ARCore API में ये कोटा होते हैं:

कोटा किस तरह का है ज़्यादा से ज़्यादा कुल समय इस पर लागू होता है
ऐंकर की संख्या अनलिमिटेड लागू नहीं प्रोजेक्ट
ऐंकर होस्ट के अनुरोध 30 मिनट आईपी पता और प्रोजेक्ट
ऐंकर ने समाधान किया है 300 मिनट आईपी पता और प्रोजेक्ट

अच्छे उपयोगकर्ता अनुभव के लिए सबसे सही तरीके

उपयोगकर्ताओं को ऐप्लिकेशन पर अच्छा उपयोगकर्ता अनुभव देने के लिए, ये काम करें:

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

  • क्लाउड ऐंकर को होस्ट और ठीक करते समय, यह पक्का करें कि असल ज़िंदगी में उन्हें अच्छी रोशनी मिल रही हो.

समर्थन नहीं होने या रोके जाने की नीति

  • ARCore SDK टूल 1.12.0 या इसके बाद के वर्शन के साथ बने ऐप्लिकेशन, Cloud ऐंकर API के बंद होने की नीति के तहत आते हैं.
  • ARCore SDK 1.11.0 या उससे पहले वाले वर्शन के साथ बनाए गए ऐप्लिकेशन, क्लाउड ऐंकर को होस्ट या ठीक नहीं कर पाते हैं. ऐसा इसलिए होता है, क्योंकि SDK टूल, इस्तेमाल न किए जाने वाले पुराने ARCore API का इस्तेमाल करता है.

आगे क्या