XR_ANDROID_google_cloud_auth
নামের স্ট্রিং
XR_ANDROID_google_cloud_auth
এক্সটেনশনের ধরন
ইনস্ট্যান্স এক্সটেনশন
রেজিস্টার করা এক্সটেনশন নম্বর
788
সংশোধন
1
অনুমোদনের স্ট্যাটাস
অনুমোদিত নয়
এক্সটেনশন ও ভার্সন ডিপেন্ডেন্সি
XR_EXT_future
শেষবার পরিবর্তন করার তারিখ
2025-12-18
IP স্ট্যাটাস
IP সংক্রান্ত কোনও দাবি নেই।
কন্ট্রিবিউটর
জন উলম্যান, Google
বেন কিং, Google
নিহাভ জৈন, Google
জ্যারেড ফাইন্ডার, Google
এক নজরে
এই এক্সটেনশন, Google Cloud API-এর জন্য অ্যাপ্লিকেশনকে অথেন্টিকেশন ক্রেডেনশিয়াল প্রদান করার অনুমতি দিয়ে Google Cloud-ভিত্তিক এক্সটেনশন ব্যবহার করার সুবিধা দেয়। অ্যাপ্লিকেশনের জন্য Google Cloud প্রোজেক্ট তৈরি করতে ডেভেলপারকে অবশ্যই Google Cloud Console ( https://console.cloud.google.com/ ) ব্যবহার করতে হবে। এই এক্সটেনশনের জন্য XR_EXT_future এক্সটেনশন প্রয়োজন।
ডেভেলপমেন্টের সময়, অ্যাপ্লিকেশনটি XR_EXT_debug_utils এক্সটেনশন ব্যবহার করে Google Cloud সেট-আপের সমস্যা ডিবাগ করতে পারে। অ্যাপ্লিকেশনে যদি ডিবাগ মেসেঞ্জার থাকে এবং অ্যাপ্লিকেশনের হয়ে Google Cloud-এ অনুরোধ পাঠানোর সময় রানটাইমে যদি সম্ভাব্য অ্যাকশনযোগ্য কোনও সমস্যা হয়, তাহলে রানটাইম সমস্যার মেসেজ সহ মেসেঞ্জারের কলব্যাককে ইনভোক করে। এই ক্ষেত্রে, ডেভেলপারকে অবশ্যই ত্রুটি মেসেজ এবং উপলভ্য সব ডকুমেন্টেশন দেখতে হবে এবং তারপর নিশ্চিত করতে হবে যে Google Cloud API ব্যবহার করার জন্য অ্যাপ্লিকেশন এবং Google Cloud প্রোজেক্ট সঠিকভাবে সেট-আপ করা হয়েছে। রানটাইমে অবশ্যই মেসেজের ধরন XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT , তীব্রতা XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT এবং messageId “GoogleCloudError” ব্যবহার করতে হবে।
যাচাইকরণ
XrGoogleCloudAuthInfoBaseHeaderANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGoogleCloudAuthInfoBaseHeaderANDROID {
XrStructureType type;
const void* next;
} XrGoogleCloudAuthInfoBaseHeaderANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।
এই স্ট্রাকচার সরাসরি API-তে ব্যবহার করা হয় না, তবে অন্যান্য স্ট্রাকচার দ্বারা প্রসারিত হয় যা যাচাইকরণ সংক্রান্ত ক্রেডেনশিয়াল প্রদান করতে 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-কে অবশ্যই নিম্নলিখিত শর্তগুলি পূরণ করতে হবে:
- এটি অবশ্যই আপনার Google Cloud প্রোজেক্টের জন্য জেনারেট করা একটি সঠিক API Key হতে হবে।
- আপনার Google Cloud প্রোজেক্টে প্রাসঙ্গিক Google Cloud API (নির্ভরশীল এক্সটেনশন দ্বারা নির্দিষ্ট করা) অবশ্যই চালু করতে হবে।
- API Key-তে বিধিনিষেধ থাকলে, বিধিনিষেধের মধ্যে প্রাসঙ্গিক Google Cloud API এবং আপনার অ্যাপ্লিকেশন অবশ্যই অনুমোদিত হতে হবে।
অন্যথায়, xrSetGoogleCloudAuthAsyncANDROID-এ কল করা যাবে কিন্তু ক্লাউড অনুমোদনের উপর নির্ভর করে এমন ফাংশনে করা সব কল, সেইসব ফাংশন সংজ্ঞায়িত করে এমন এক্সটেনশনে ক্লাউড ব্যর্থতার জন্য ডকুমেন্ট করা হিসেবে কাজ করবে। কোনও ফাংশন যদি ব্যর্থতার রিপোর্ট করতে পারে এবং অ্যাপ্লিকেশনটি সেই ফাংশনের আউটপুট প্যারামিটারে XrGoogleCloudAuthErrorResultANDROID চেইন করে, তাহলে রানটাইমকে অবশ্যই XrGoogleCloudAuthErrorResultANDROID :: error-কে XR_GOOGLE_CLOUD_AUTH_ERROR_ANDROID-এ সেট করতে হবে যাতে এই ত্রুটিটি নির্দেশ করা যায়।
API কী ফর্ম্যাটিংয়ের জন্য যাচাই করা এবং রানটাইম দ্বারা স্টোর করা হলে, অ্যাসিঙ্ক্রোনাস অপারেশন 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-কে অবশ্যই নিম্নলিখিত শর্তগুলি পূরণ করতে হবে:
- এটি অবশ্যই আপনার Google Cloud প্রোজেক্টের জন্য তৈরি করা সঠিক এবং মেয়াদ শেষ না হওয়া ক্রেডেনশিয়াল হতে হবে।
- আপনার Google Cloud প্রোজেক্টে প্রাসঙ্গিক Google Cloud API (নির্ভরশীল এক্সটেনশন দ্বারা নির্দিষ্ট করা) অবশ্যই চালু করতে হবে।
ক্রেডেনশিয়াল অবশ্যই এগুলির মধ্যে একটি হতে হবে:
- প্রাসঙ্গিক স্কোপ সহ একটি OAuth2 অ্যাক্সেস টোকেন, যা আপনার অ্যাপ্লিকেশনের মাধ্যমে Google অ্যাকাউন্টে সাইন-ইন করে তৈরি করা হয়েছে, অথবা
- আপনার Google Cloud প্রোজেক্ট থেকে কোনও পরিষেবা অ্যাকাউন্ট দ্বারা জেনারেট করা প্রাসঙ্গিক দাবি সহ একটি স্বাক্ষরিত 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-এ পাস করা হলে, রানটাইম ডায়নামিকভাবে ক্রেডেনশিয়াল তৈরি করতে পারে (যেমন, Android-এ, রানটাইম অ্যাপ্লিকেশন প্রসেস থেকে Google Play পরিষেবার সাথে যোগাযোগ করে)। 'কী' ছাড়া অথেন্টিকেশন সঠিকভাবে সেট-আপ করা না হলে, রানটাইম সিঙ্ক্রোনাসভাবে XR_ERROR_KEYLESS_AUTH_NOT_SETUP_ANDROID ফিরিয়ে দিতে পারে।
অ্যাসিঙ্ক্রোনাস অপারেশন ক্রেডেনশিয়াল আনার জন্য প্রয়োজনীয় নেটওয়ার্ক অনুরোধ করবে। এই অপারেশনের ফলাফল XrFutureCompletionEXT :: futureResult-এ xrSetGoogleCloudAuthCompleteANDROID থেকে ফেরত দেওয়া হবে। ভবিষ্যতের ফলাফল XR_SUCCESS হলে, 'কী' ছাড়া Auth ক্রেডেনশিয়াল সফলভাবে প্রয়োগ করা হয়েছে। ভবিষ্যতের ফলাফল 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হল একটি স্ট্রাক্টের পয়েন্টার যা যাচাইকরণ পদ্ধতি ও প্যারামিটার নির্দিষ্ট করে, এর XrGoogleCloudAuthInfoBaseHeaderANDROID ::typeফিল্ড নির্দিষ্ট স্ট্রাক্টকে নির্দেশ করে।futureহল একটিXrFutureEXTহ্যান্ডেলের পয়েন্টার যেখানে তৈরি করা ফিউচার রিটার্ন করা হয়, অথবা XR_NULL_HANDLE যদি ফাংশনটিXR_SUCCESSরিটার্ন না করে।
Google Cloud-এর মাধ্যমে যাচাই করার জন্য ব্যবহৃত ক্রেডেনশিয়াল সেট করুন। এই অপারেশনটি অ্যাসিঙ্ক্রোনাস। ভবিষ্যতে রেডি স্টেট চেক করতে xrPollFutureEXT কল করুন। ফিউচার রেডি স্টেটে চলে এলে, ফলাফল পেতে xrSetGoogleCloudAuthCompleteANDROID কল করুন।
authInfo প্যারামিটারটি অবশ্যই একটি স্ট্রাক্টের পয়েন্টার হতে হবে যার XrGoogleCloudAuthInfoBaseHeaderANDROID :: type মেম্বার ব্যবহার করার জন্য যাচাইকরণ পদ্ধতি শনাক্ত করে এবং যা XrGoogleCloudAuthInfoBaseHeaderANDROID (যেমন XrGoogleCloudAuthInfoApiKeyANDROID ) এক্সটেন্ড করে।
প্রতিটি যাচাইকরণ পদ্ধতির জন্য নির্দিষ্ট প্রয়োজনীয়তা, আচরণ এবং ত্রুটির শর্তাবলী (সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস উভয়ই) তাদের নিজ নিজ ডেটা স্ট্রাক্টের জন্য ডকুমেন্টেশনে বর্ণনা করা হয়েছে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrSetGoogleCloudAuthAsyncANDROID কল করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশন অবশ্যই চালু করতে হবে -
sessionঅবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে -
authInfoঅবশ্যই একটি সঠিক XrGoogleCloudAuthInfoBaseHeaderANDROID -ভিত্তিক স্ট্রাকচারের পয়েন্টার হতে হবে। আরও দেখুন: XrGoogleCloudAuthInfoApiKeyANDROID , XrGoogleCloudAuthInfoKeylessANDROID , XrGoogleCloudAuthInfoTokenANDROID -
futureঅবশ্যইXrFutureEXTভ্যালুর পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_KEYLESS_AUTH_NOT_SETUP_ANDROIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
xrSetGoogleCloudAuthCompleteANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrSetGoogleCloudAuthCompleteANDROID(
XrSession session,
XrFutureEXT future,
XrFutureCompletionEXT* completion);
প্যারামিটারের বিবরণ
sessionহল XrSession যা অপারেশন শুরু করতে ব্যবহার করা হয়।futureহল সম্পূর্ণ করার জন্যXrFutureEXT।completionহল রানটাইম দ্বারা পূরণ করা XrFutureCompletionEXT-এর একটি পয়েন্টার।
ভবিষ্যতের রিটার্ন কোড
XrFutureCompletionEXT :: futureResult ভ্যালু:
XR_SUCCESS: ক্রেডেনশিয়াল প্রয়োগ করা হয়েছে।
XR_ERROR_KEYLESS_AUTH_FAILED_ANDROID: কীলেস যাচাইকরণ করা যায়নি। অ্যাপ্লিকেশনটি পরে আবার চেষ্টা করতে পারে। অ্যাপ্লিকেশন বা ডেভেলপারও সফল হওয়ার জন্য নির্দিষ্ট কিছু পূর্বশর্ত চেক করতে পারে (যেমন, Android-এ, ডিভাইসে Google Play পরিষেবার আপ-টু-ডেট ইনস্টলেশন থাকতেই হবে এবং এই পরিষেবাগুলি অবশ্যই সঠিকভাবে কাজ করতে হবে)।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrSetGoogleCloudAuthCompleteANDROID কল করার আগে
XR_ANDROID_google_cloud_authএক্সটেনশন অবশ্যই চালু করতে হবে -
sessionঅবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে -
completionঅবশ্যই XrFutureCompletionEXT স্ট্রাকচারের পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_FUTURE_INVALID_EXTXR_ERROR_FUTURE_PENDING_EXTXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
Google Cloud যাচাইকরণ সংক্রান্ত সমস্যা
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;
এনিউমারেন্টের নিম্নলিখিত মান আছে:
Enum-এর বিবরণ
XR_GOOGLE_CLOUD_AUTH_ERROR_NONE_ANDROID
Google Cloud API কল করার সময় কোনও সমস্যা হয়নি।
XR_GOOGLE_CLOUD_AUTH_ERROR_QUOTA_EXCEEDED_ANDROID
Google Cloud API কল করার সময় কোটা পেরিয়ে গেছে।
XR_GOOGLE_CLOUD_AUTH_ERROR_UNREACHABLE_ANDROID
Google Cloud API-তে পৌঁছানো যায়নি, সম্ভবত নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা বা সার্ভার উপলভ্য না থাকার কারণে।
XR_GOOGLE_CLOUD_AUTH_ERROR_ANDROID
Google Cloud API কল করার সময় একটি অথেন্টিকেশন সংক্রান্ত সমস্যা হয়েছে।
XrGoogleCloudAuthErrorResultANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGoogleCloudAuthErrorResultANDROID {
XrStructureType type;
void* next;
XrGoogleCloudAuthErrorANDROID error;
} XrGoogleCloudAuthErrorResultANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।errorহল XrGoogleCloudAuthErrorANDROID যা Google Cloud অ্যাক্সেস করার সময় কোনও অপারেশনে হওয়া সমস্যার কারণ বিস্তারিতভাবে জানায়।
Google Cloud যাচাইকরণের কারণে কোনও অপারেশন ব্যর্থ হলে, এই স্ট্রাক্টটি হয়তো অপারেশনাল ফলাফল স্ট্রাক্টের সাথে চেইন করা হতে পারে যাতে সমস্যা সম্পর্কে আরও তথ্য প্রদান করা যায়।
সঠিক ব্যবহার (অন্তর্নিহিত)
- 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 এক্সটেন্ড করা হচ্ছে :
নতুন Enum
নতুন Enum কনস্ট্যান্ট
XR_ANDROID_GOOGLE_CLOUD_AUTH_EXTENSION_NAMEXR_ANDROID_google_cloud_auth_SPEC_VERSIONXrResult এক্সটেন্ড করা হচ্ছে :
XR_ERROR_KEYLESS_AUTH_FAILED_ANDROIDXR_ERROR_KEYLESS_AUTH_NOT_SETUP_ANDROID
XrStructureType এক্সটেন্ড করা হচ্ছে :
XR_TYPE_GOOGLE_CLOUD_AUTH_ERROR_RESULT_ANDROIDXR_TYPE_GOOGLE_CLOUD_AUTH_INFO_API_KEY_ANDROIDXR_TYPE_GOOGLE_CLOUD_AUTH_INFO_KEYLESS_ANDROIDXR_TYPE_GOOGLE_CLOUD_AUTH_INFO_TOKEN_ANDROID
ইস্যু
Revision 1, 2025-12-18 (Ben King)
- এক্সটেনশনের প্রাথমিক বিবরণ।