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-এর সাথে ব্যবহার করা যেতে পারে।

সঠিক ব্যবহার (অন্তর্নিহিত)

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-এর মাধ্যমে সম্পূর্ণ হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

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-এর মাধ্যমে সম্পূর্ণ হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

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 হলে, অ্যাপ্লিকেশনটি পরে আবার চেষ্টা করতে পারে।

সঠিক ব্যবহার (অন্তর্নিহিত)

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 ) এক্সটেন্ড করে।

প্রতিটি যাচাইকরণ পদ্ধতির জন্য নির্দিষ্ট প্রয়োজনীয়তা, আচরণ এবং ত্রুটির শর্তাবলী (সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস উভয়ই) তাদের নিজ নিজ ডেটা স্ট্রাক্টের জন্য ডকুমেন্টেশনে বর্ণনা করা হয়েছে।

সঠিক ব্যবহার (অন্তর্নিহিত)

রিটার্ন কোড

হয়ে গেছে

  • 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 যা অপারেশন শুরু করতে ব্যবহার করা হয়।
  • 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_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

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 যাচাইকরণের কারণে কোনও অপারেশন ব্যর্থ হলে, এই স্ট্রাক্টটি হয়তো অপারেশনাল ফলাফল স্ট্রাক্টের সাথে চেইন করা হতে পারে যাতে সমস্যা সম্পর্কে আরও তথ্য প্রদান করা যায়।

সঠিক ব্যবহার (অন্তর্নিহিত)

উদাহরণ কোড

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.
  }
}

নতুন কমান্ড

নতুন স্ট্রাকচার

নতুন Enum

নতুন Enum কনস্ট্যান্ট

  • 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

ইস্যু

  • Revision 1, 2025-12-18 (Ben King)

    • এক্সটেনশনের প্রাথমিক বিবরণ।