XR_ANDROID_google_cloud_auth
নাম স্ট্রিং
XR_ANDROID_google_cloud_auth
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
৭৮৮
সংশোধন
১
অনুমোদনের অবস্থা
অনুমোদিত নয়
এক্সটেনশন এবং সংস্করণ নির্ভরতা
XR_EXT_future
সর্বশেষ সংশোধনের তারিখ
২০২৫-১২-১৮
আইপি স্ট্যাটাস
কোনো জ্ঞাত আইপি দাবি নেই।
অবদানকারীরা
জন উলম্যান, গুগল
বেন কিং, গুগল
নিহাব জৈন, গুগল
জ্যারেড ফাইন্ডার, গুগল
সংক্ষিপ্ত বিবরণ
এই এক্সটেনশনটি অ্যাপ্লিকেশনটিকে গুগল ক্লাউড এপিআই (Google Cloud APIs)-এর জন্য অথেন্টিকেশন ক্রেডেনশিয়াল (auth credentials) প্রদান করার সুযোগ দিয়ে গুগল ক্লাউড-ভিত্তিক এক্সটেনশনগুলির ব্যবহার সক্ষম করে। অ্যাপ্লিকেশনটির জন্য একটি গুগল ক্লাউড প্রজেক্ট তৈরি করতে ডেভেলপারকে অবশ্যই গুগল ক্লাউড কনসোল ( https://console.cloud.google.com/ ) ব্যবহার করতে হবে। এই এক্সটেনশনটির জন্য XR_EXT_future এক্সটেনশনটি প্রয়োজন।
ডেভেলপমেন্টের সময়, অ্যাপ্লিকেশনটি XR_EXT_debug_utils এক্সটেনশনটি ব্যবহার করে তাদের গুগল ক্লাউড সেটআপের সমস্যা ডিবাগ করতে পারে । যদি অ্যাপ্লিকেশনটিতে একটি ডিবাগ মেসেঞ্জার থাকে, এবং অ্যাপ্লিকেশনটির পক্ষ থেকে গুগল ক্লাউডে অনুরোধ পাঠানোর সময় রানটাইমে কোনো সম্ভাব্য সমাধানযোগ্য ত্রুটি ঘটে, তবে রানটাইম একটি ত্রুটি বার্তা সহ মেসেঞ্জারের কলব্যাকটি চালু করে। এই ক্ষেত্রে, ডেভেলপারের উচিত ত্রুটি বার্তা এবং সমস্ত উপলব্ধ ডকুমেন্টেশন দেখে নেওয়া, এবং তারপর নিশ্চিত করা যে অ্যাপ্লিকেশন এবং গুগল ক্লাউড প্রজেক্টটি গুগল ক্লাউড এপিআই ব্যবহার করার জন্য সঠিকভাবে সেটআপ করা আছে। রানটাইমকে অবশ্যই মেসেজ টাইপ XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT , সেভিয়ারিটি XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT , এবং মেসেজআইডি “GoogleCloudError” ব্যবহার করতে হবে।
প্রমাণীকরণ
XrGoogleCloudAuthInfoBaseHeaderANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrGoogleCloudAuthInfoBaseHeaderANDROID {
XrStructureType type;
const void* next;
} XrGoogleCloudAuthInfoBaseHeaderANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার।
এই কাঠামোটি সরাসরি এপিআই-তে ব্যবহৃত হয় না, তবে এটিকে অন্যান্য কাঠামো দ্বারা সম্প্রসারিত করা হয় যা প্রমাণীকরণের তথ্য প্রদানের জন্য xrSetGoogleCloudAuthAsyncANDROID-এর সাথে ব্যবহার করা যেতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrGoogleCloudAuthInfoBaseHeaderANDROID ব্যবহার করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যই নিম্নলিখিত XrStructureType মানগুলির মধ্যে একটি হতে হবে:XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_API_KEY_ANDROID,XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_KEYLESS_ANDROID,XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_TOKEN_ANDROID -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। আরও দেখুন: XrGoogleCloudAuthErrorResultANDROID
XrGoogleCloudAuthInfoApiKeyANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrGoogleCloudAuthInfoApiKeyANDROID {
XrStructureType type;
const void* next;
const char* apiKey;
} XrGoogleCloudAuthInfoApiKeyANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
apiKeyহলো এপিআই কী (API key) প্রতিনিধিত্বকারী একটি স্ট্রিং-এর পয়েন্টার।
যখন এই স্ট্রাকচারটি xrSetGoogleCloudAuthAsyncANDROID- এ পাস করা হয়, তখন apiKey মেম্বারটি অবশ্যই একটি নন-এম্পটি ASCII স্ট্রিং হতে হবে, যাতে কোনো স্পেস বা কন্ট্রোল ক্যারেক্টার থাকবে না; অন্যথায় রানটাইম XR_ERROR_VALIDATION_FAILURE রিটার্ন করবে ।
apiKey আরও নিম্নলিখিত শর্তগুলো পূরণ করতে হবে :
- এটি অবশ্যই আপনার গুগল ক্লাউড প্রজেক্টের জন্য তৈরি করা একটি বৈধ এপিআই কী হতে হবে।
- আপনার গুগল ক্লাউড প্রজেক্টে অবশ্যই প্রাসঙ্গিক গুগল ক্লাউড এপিআইগুলো (নির্ভরশীল এক্সটেনশন দ্বারা নির্দিষ্ট) সক্রিয় করতে হবে।
- যদি এপিআই কী-তে কোনো সীমাবদ্ধতা থাকে, তবে সেই সীমাবদ্ধতা অবশ্যই প্রাসঙ্গিক গুগল ক্লাউড এপিআই এবং আপনার অ্যাপ্লিকেশনকে অনুমতি দেবে।
অন্যথায়, xrSetGoogleCloudAuthAsyncANDROID- এর কলটি সফল হবে, কিন্তু ক্লাউড অথরাইজেশনের উপর নির্ভরশীল ফাংশনগুলিতে করা সমস্ত কল, সেই ফাংশনগুলিকে সংজ্ঞায়িতকারী এক্সটেনশনে ক্লাউড ব্যর্থতার জন্য নথিভুক্ত নিয়ম অনুযায়ী কাজ করবে। যদি কোনো ফাংশন ব্যর্থতা রিপোর্ট করতে পারে এবং অ্যাপ্লিকেশনটি সেই ফাংশনের আউটপুট প্যারামিটারে XrGoogleCloudAuthErrorResultANDROID চেইন করে, তবে এই ত্রুটিটি নির্দেশ করার জন্য রানটাইমকে অবশ্যই XrGoogleCloudAuthErrorResultANDROID :: error XR_GOOGLE_CLOUD_AUTH_ERROR_ANDROID এ সেট করতে হবে।
রানটাইম দ্বারা এপিআই কী-এর ফরম্যাটিং যাচাই ও সংরক্ষণ সম্পন্ন হলে, অ্যাসিঙ্ক্রোনাস অপারেশনটি XR_SUCCESS কোড দিয়ে সম্পূর্ণ হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrGoogleCloudAuthInfoApiKeyANDROID ব্যবহার করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। typeঅবশ্যইXR_TYPE_GOOGLE_CLOUD_AUTH_INFO_API_KEY_ANDROIDহতে হবেnextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে।-
apiKeyঅবশ্যই একটি নাল-টার্মিনেটেড UTF-8 স্ট্রিং হতে হবে।
XrGoogleCloudAuthInfoTokenANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrGoogleCloudAuthInfoTokenANDROID {
XrStructureType type;
const void* next;
const char* authToken;
} XrGoogleCloudAuthInfoTokenANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
authTokenহলো অথোরাইজেশন টোকেনটির প্রতিনিধিত্বকারী একটি স্ট্রিং-এর পয়েন্টার।
যখন এই স্ট্রাকচারটি xrSetGoogleCloudAuthAsyncANDROID- এ পাস করা হয়, তখন authToken মেম্বারটিকে অবশ্যই একটি নন-এম্পটি ASCII স্ট্রিং হতে হবে, যাতে কোনো স্পেস বা কন্ট্রোল ক্যারেক্টার থাকবে না; অন্যথায় রানটাইম XR_ERROR_VALIDATION_FAILURE রিটার্ন করবে । এছাড়াও authToken নিম্নলিখিত শর্তগুলো পূরণ করতে হবে :
- এটি অবশ্যই আপনার গুগল ক্লাউড প্রকল্পের জন্য তৈরি করা একটি বৈধ এবং মেয়াদোত্তীর্ণ নয় এমন ক্রেডেনশিয়াল হতে হবে।
- আপনার গুগল ক্লাউড প্রজেক্টে অবশ্যই প্রাসঙ্গিক গুগল ক্লাউড এপিআইগুলো (নির্ভরশীল এক্সটেনশন দ্বারা নির্দিষ্ট) সক্রিয় করতে হবে।
শংসাপত্রটি নিম্নলিখিতগুলির মধ্যে একটি হতে হবে :
- আপনার অ্যাপ্লিকেশন দিয়ে একটি গুগল অ্যাকাউন্টে সাইন ইন করে তৈরি করা, প্রাসঙ্গিক স্কোপসহ একটি OAuth2 অ্যাক্সেস টোকেন, অথবা
- আপনার গুগল ক্লাউড প্রজেক্টের একটি সার্ভিস অ্যাকাউন্ট দ্বারা জেনারেট করা, প্রাসঙ্গিক ক্লেইমসহ একটি স্বাক্ষরিত JWT টোকেন।
প্রতিটি ক্ষেত্রে প্রয়োজনীয়তাগুলো সংশ্লিষ্ট এক্সটেনশন দ্বারা নির্দিষ্ট করা হয়। অন্যথায়, xrSetGoogleCloudAuthAsyncANDROID- এর কলটি সফল হবে, কিন্তু ক্লাউড অথরাইজেশনের উপর নির্ভরশীল ফাংশনগুলোর সমস্ত কল, সেই ফাংশনগুলোকে সংজ্ঞায়িতকারী এক্সটেনশনে ক্লাউড ব্যর্থতার জন্য নথিভুক্ত নিয়ম অনুযায়ী কাজ করবে। যদি কোনো ফাংশন ব্যর্থতা রিপোর্ট করতে পারে এবং অ্যাপ্লিকেশনটি সেই ফাংশনের আউটপুট প্যারামিটারে XrGoogleCloudAuthErrorResultANDROID চেইন করে, তবে এই ত্রুটিটি নির্দেশ করার জন্য রানটাইমকে অবশ্যই XrGoogleCloudAuthErrorResultANDROID :: error XR_GOOGLE_CLOUD_AUTH_ERROR_ANDROID এ সেট করতে হবে।
পুরানো টোকেনের মেয়াদ শেষ হওয়ার আগেই অ্যাপ্লিকেশনটিকে অবশ্যই xrSetGoogleCloudAuthAsyncANDROID- এর মাধ্যমে সক্রিয়ভাবে একটি নতুন টোকেন পাঠাতে হবে। নতুন নেটওয়ার্ক অনুরোধ শুরু করার সময় রানটাইমকে অবশ্যই অ্যাপ্লিকেশন দ্বারা পাঠানো সর্বশেষ টোকেনটি ব্যবহার করতে হবে।
রানটাইম দ্বারা টোকেনটির ফরম্যাটিং যাচাই এবং সংরক্ষণ সম্পন্ন হলে, অ্যাসিঙ্ক্রোনাস অপারেশনটি XR_SUCCESS কোড দিয়ে সমাপ্ত হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrGoogleCloudAuthInfoTokenANDROID ব্যবহার করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_GOOGLE_CLOUD_AUTH_INFO_TOKEN_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
authTokenঅবশ্যই একটি নাল-টার্মিনেটেড UTF-8 স্ট্রিং হতে হবে।
XrGoogleCloudAuthInfoKeylessANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrGoogleCloudAuthInfoKeylessANDROID {
XrStructureType type;
const void* next;
} XrGoogleCloudAuthInfoKeylessANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার।
যখন এই স্ট্রাকচারটি xrSetGoogleCloudAuthAsyncANDROID- এ পাস করা হয়, তখন রানটাইম ডায়নামিকভাবে ক্রেডেনশিয়াল তৈরি করতে পারে (যেমন অ্যান্ড্রয়েডে, রানটাইম অ্যাপ্লিকেশন প্রসেস থেকে গুগল প্লে সার্ভিসের সাথে যোগাযোগ করে)। যদি কীলেস অথেন্টিকেশন সঠিকভাবে সেটআপ করা না থাকে, তাহলে রানটাইম সিনক্রোনাসলি XR_ERROR_KEYLESS_AUTH_NOT_SETUP_ANDROID রিটার্ন করতে পারে ।
অ্যাসিঙ্ক্রোনাস অপারেশনটি ক্রেডেনশিয়াল আনার জন্য প্রয়োজনীয় নেটওয়ার্ক অনুরোধগুলো সম্পাদন করবে। এই অপারেশনের ফলাফল xrSetGoogleCloudAuthCompleteANDROID থেকে XrFutureCompletionEXT :: futureResult এ ফেরত দেওয়া হবে। যদি ভবিষ্যতের ফলাফল XR_SUCCESS হয়, তাহলে কীলেস অথেন্টিকেশন ক্রেডেনশিয়াল সফলভাবে প্রয়োগ করা হয়েছে। যদি ভবিষ্যতের ফলাফল XR_ERROR_KEYLESS_AUTH_FAILED_ANDROID হয়, তাহলে অ্যাপ্লিকেশনটি পরে আবার চেষ্টা করতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrGoogleCloudAuthInfoKeylessANDROID ব্যবহার করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_GOOGLE_CLOUD_AUTH_INFO_KEYLESS_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে।
xrSetGoogleCloudAuthAsyncANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrSetGoogleCloudAuthAsyncANDROID(
XrSession session,
const XrGoogleCloudAuthInfoBaseHeaderANDROID* authInfo,
XrFutureEXT* future);
প্যারামিটার বিবরণ
-
sessionহলো সেই XrSession যা ক্রেডেনশিয়ালগুলো ব্যবহার করবে। -
authInfoহলো একটি struct-এর পয়েন্টার যা প্রমাণীকরণ পদ্ধতি এবং প্যারামিটারগুলো নির্দিষ্ট করে, এবং এর XrGoogleCloudAuthInfoBaseHeaderANDROID ::typeফিল্ডটি নির্দিষ্ট struct-টিকে নির্দেশ করে। -
futureহলো একটিXrFutureEXTহ্যান্ডেলের পয়েন্টার, যেখানে তৈরি করা future-টি ফেরত দেওয়া হয়, অথবা XR_NULL_HANDLE, যদি ফাংশনটিXR_SUCCESSফেরত না দেয়।
গুগল ক্লাউডের সাথে প্রমাণীকরণের জন্য ব্যবহৃত ক্রেডেনশিয়াল সেট করুন। এই অপারেশনটি অ্যাসিঙ্ক্রোনাস। ফিউচারটির রেডি অবস্থা পরীক্ষা করতে xrPollFutureEXT কল করুন। ফিউচারটি রেডি অবস্থায় এলে, ফলাফলটি পেতে xrSetGoogleCloudAuthCompleteANDROID কল করুন।
authInfo প্যারামিটারটি অবশ্যই এমন একটি struct-এর পয়েন্টার হতে হবে, যার XrGoogleCloudAuthInfoBaseHeaderANDROID :: type মেম্বারটি ব্যবহৃতব্য প্রমাণীকরণ পদ্ধতিকে শনাক্ত করে এবং যা XrGoogleCloudAuthInfoBaseHeaderANDROID-কে এক্সটেন্ড করে (যেমন XrGoogleCloudAuthInfoApiKeyANDROID )।
প্রতিটি প্রমাণীকরণ পদ্ধতির জন্য নির্দিষ্ট প্রয়োজনীয়তা, আচরণ এবং ত্রুটির শর্তাবলী (সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস উভয়ই) তাদের নিজ নিজ ডেটা স্ট্রাক্টের ডকুমেন্টেশনে বর্ণনা করা হয়েছে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrSetGoogleCloudAuthAsyncANDROID কল করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
authInfoঅবশ্যই একটি বৈধ XrGoogleCloudAuthInfoBaseHeaderANDROID- ভিত্তিক কাঠামোর একটি পয়েন্টার হতে হবে। আরও দেখুন: XrGoogleCloudAuthInfoApiKeyANDROID , XrGoogleCloudAuthInfoKeylessANDROID , XrGoogleCloudAuthInfoTokenANDROID -
futureঅবশ্যই একটিXrFutureEXTমানের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_KEYLESS_AUTH_NOT_SETUP_ANDROID -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_VALIDATION_FAILURE
xrSetGoogleCloudAuthCompleteANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrSetGoogleCloudAuthCompleteANDROID(
XrSession session,
XrFutureEXT future,
XrFutureCompletionEXT* completion);
প্যারামিটার বিবরণ
-
sessionহলো অপারেশনটি শুরু করতে ব্যবহৃত XrSession । -
futureXrFutureEXTসম্পূর্ণ করতে হবে। -
completionহলো একটি XrFutureCompletionEXT-এর দিকে নির্দেশকারী পয়েন্টার, যা রানটাইম দ্বারা পূরণ করা হয়।
ভবিষ্যতের রিটার্ন কোড
XrFutureCompletionEXT :: futureResult মানসমূহ:
-
XR_SUCCESS: ক্রেডেনশিয়াল সফলভাবে প্রয়োগ করা হয়েছে।
-
XR_ERROR_KEYLESS_AUTH_FAILED_ANDROID: কীলেস অথেন্টিকেশন ব্যর্থ হয়েছে। অ্যাপ্লিকেশনটি পরে আবার চেষ্টা করতে পারে । সফলতার জন্য অ্যাপ্লিকেশন বা ডেভেলপার কিছু পূর্বশর্তও যাচাই করতে পারে (যেমন, অ্যান্ড্রয়েডের ক্ষেত্রে, ডিভাইসটিতে গুগল প্লে সার্ভিসেস-এর একটি হালনাগাদ ইনস্টলেশন থাকতে হবে এবং এই পরিষেবাগুলো সঠিকভাবে কাজ করতে হবে )।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrSetGoogleCloudAuthCompleteANDROID কল করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
completionঅবশ্যই একটি XrFutureCompletionEXT স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_FUTURE_INVALID_EXT -
XR_ERROR_FUTURE_PENDING_EXT -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_VALIDATION_FAILURE
গুগল ক্লাউড অথেন্টিকেশন ত্রুটি
XrGoogleCloudAuthErrorANDROID এনুমারেশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef enum XrGoogleCloudAuthErrorANDROID {
XR_GOOGLE_CLOUD_AUTH_ERROR_NONE_ANDROID = 0,
XR_GOOGLE_CLOUD_AUTH_ERROR_QUOTA_EXCEEDED_ANDROID = -1,
XR_GOOGLE_CLOUD_AUTH_ERROR_UNREACHABLE_ANDROID = -2,
XR_GOOGLE_CLOUD_AUTH_ERROR_ANDROID = -3,
XR_GOOGLE_CLOUD_AUTH_ERROR_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrGoogleCloudAuthErrorANDROID;
গণনাকারীগুলোর নিম্নলিখিত মান রয়েছে:
এনামের বিবরণ
XR_GOOGLE_CLOUD_AUTH_ERROR_NONE_ANDROID
গুগল ক্লাউড এপিআই কল করার সময় কোনো ত্রুটি ঘটেনি।
XR_GOOGLE_CLOUD_AUTH_ERROR_QUOTA_EXCEEDED_ANDROID
গুগল ক্লাউড এপিআই ব্যবহারের সময় কোটা অতিক্রম করা হয়েছে।
XR_GOOGLE_CLOUD_AUTH_ERROR_UNREACHABLE_ANDROID
সম্ভবত নেটওয়ার্ক সংযোগ সমস্যা বা সার্ভারের প্রাপ্যতার কারণে গুগল ক্লাউড এপিআই-তে পৌঁছানো সম্ভব হয়নি।
XR_GOOGLE_CLOUD_AUTH_ERROR_ANDROID
গুগল ক্লাউড এপিআই কল করার সময় একটি অথেন্টিকেশন ত্রুটি ঘটেছে।
XrGoogleCloudAuthErrorResultANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrGoogleCloudAuthErrorResultANDROID {
XrStructureType type;
void* next;
XrGoogleCloudAuthErrorANDROID error;
} XrGoogleCloudAuthErrorResultANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
errorহলো XrGoogleCloudAuthErrorANDROID, যা গুগল ক্লাউড অ্যাক্সেস করার একটি অপারেশনের ত্রুটির কারণ বিশদভাবে বর্ণনা করে।
যদি গুগল ক্লাউড অথেনটিকেশনের কারণে কোনো অপারেশন ব্যর্থ হয়, তবে ত্রুটি সম্পর্কে আরও তথ্য প্রদানের জন্য এই স্ট্রাকচারটিকে অপারেশনাল রেজাল্ট স্ট্রাকচারের সাথে চেইন করা যেতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrGoogleCloudAuthErrorResultANDROID ব্যবহার করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_GOOGLE_CLOUD_AUTH_ERROR_RESULT_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
errorঅবশ্যই একটি বৈধ XrGoogleCloudAuthErrorANDROID মান হতে হবে।
উদাহরণ কোড
XrSession session; // previously initialized
XrInstance instance; // previously initialized
XrFutureEXT future = XR_NULL_HANDLE;
// The function pointers are previously initialized using
// xrGetInstanceProcAddr.
PFN_xrPollFutureEXT xrPollFutureEXT; // previously initialized
PFN_xrSetGoogleCloudAuthAsyncANDROID xrSetGoogleCloudAuthAsyncANDROID; // previously initialized
PFN_xrSetGoogleCloudAuthCompleteANDROID xrSetGoogleCloudAuthCompleteANDROID; // previously initialized
auto waitUntilReady = [&](XrFutureEXT future) {
XrFuturePollInfoEXT pollInfo{XR_TYPE_FUTURE_POLL_INFO_EXT};
XrFuturePollResultEXT pollResult{XR_TYPE_FUTURE_POLL_RESULT_EXT};
pollInfo.future = future;
do {
// sleep(1);
xrPollFutureEXT(instance, &pollInfo, &pollResult);
} while (pollResult.state != XR_FUTURE_STATE_READY_EXT);
};
// Set Google Cloud auth via API key.
XrGoogleCloudAuthInfoApiKeyANDROID authApiKey{XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_API_KEY_ANDROID};
authApiKey.apiKey = "MYAPIKEY";
XrResult result = xrSetGoogleCloudAuthAsyncANDROID(
session, reinterpret_cast<XrGoogleCloudAuthInfoBaseHeaderANDROID*>(&authApiKey), &future);
// Or, set Google Cloud auth via auth token:
XrGoogleCloudAuthInfoTokenANDROID authToken{XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_TOKEN_ANDROID};
authToken.authToken = "MYAUTHTOKEN";
result = xrSetGoogleCloudAuthAsyncANDROID(
session, reinterpret_cast<XrGoogleCloudAuthInfoBaseHeaderANDROID*>(&authToken), &future);
// Or, set Google Cloud auth via keyless auth:
XrGoogleCloudAuthInfoKeylessANDROID authKeyless{XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_KEYLESS_ANDROID};
result = xrSetGoogleCloudAuthAsyncANDROID(
session, reinterpret_cast<XrGoogleCloudAuthInfoBaseHeaderANDROID*>(&authKeyless),
&future);
// Check the result of the auth setup.
if (result == XR_ERROR_VALIDATION_FAILURE) {
// The credentials were invalid.
} else if (result == XR_ERROR_KEYLESS_AUTH_NOT_SETUP_ANDROID) {
// Keyless auth was not properly setup.
} else if (result == XR_SUCCESS) {
waitUntilReady(future);
XrFutureCompletionEXT completion{XR_TYPE_FUTURE_COMPLETION_EXT};
xrSetGoogleCloudAuthCompleteANDROID(session, future, &completion);
if (completion.futureResult == XR_SUCCESS) {
// Credentials were successfully applied.
} else if (completion.futureResult == XR_ERROR_KEYLESS_AUTH_FAILED_ANDROID) {
// An error occurred when setting keyless auth credentials. This error may be retried.
}
}
নতুন কমান্ড
নতুন কাঠামো
- XrGoogleCloudAuthInfoApiKeyANDROID
- XrGoogleCloudAuthInfoBaseHeaderANDROID
- XrGoogleCloudAuthInfoKeylessANDROID
- XrGoogleCloudAuthInfoTokenANDROID
XrGoogleCloudAuthInfoBaseHeaderANDROID- এর সম্প্রসারণ:
নতুন এনাম
নতুন এনাম ধ্রুবক
-
XR_ANDROID_GOOGLE_CLOUD_AUTH_EXTENSION_NAME -
XR_ANDROID_google_cloud_auth_SPEC_VERSION XrResult- এর সম্প্রসারণ:
-
XR_ERROR_KEYLESS_AUTH_FAILED_ANDROID -
XR_ERROR_KEYLESS_AUTH_NOT_SETUP_ANDROID
-
XrStructureType সম্প্রসারণ :
-
XR_TYPE_GOOGLE_CLOUD_AUTH_ERROR_RESULT_ANDROID -
XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_API_KEY_ANDROID -
XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_KEYLESS_ANDROID -
XR_TYPE_GOOGLE_CLOUD_AUTH_INFO_TOKEN_ANDROID
-
সমস্যা
সংস্করণ ১, ২০২৫-১২-১৮ (বেন কিং)
- প্রাথমিক সম্প্রসারণের বিবরণ।