আপনার Play Age Signals API (বিটা) ইন্টিগ্রেশন পরীক্ষা করা

বিভিন্ন বয়সের সিগন্যাল ও বয়স শেয়ারিং স্ট্যাটাস আপনার অ্যাপ কীভাবে ম্যানেজ করে তা যাচাই করতে, SDK টেস্টিং আর্টিফ্যাক্টে দেওয়া FakeAgeSignalsManager ব্যবহার করুন। FakeAgeSignalsManager আপনার প্রোডাকশন AgeSignalsManager ইনস্ট্যান্স পরিবর্তন করে ইউনিট ও ইন্টিগ্রেশন টেস্টিংয়ের জন্য API উত্তর সিমুলেট করতে দেয়।

Play Age Signals API SDK ভার্সন 0.0.4 ব্যবহার করে বিভিন্ন ধরনের উত্তর সিমুলেট করতে, নিম্নলিখিত উদাহরণ দেখুন:

উদাহরণ ১: অ্যাক্সেসের অনুরোধ (ব্যবহারকারীর শেয়ার করা বয়স)

Kotlin

val fakeAccessResult = AgeSignalsAccessResult.builder()
    .setAgeSignalsStatus(AgeSignalsStatus.SHARED) // or NOT_SHARED
    .build()

val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsAccessResult(fakeAccessResult)
manager.requestAgeSignalsAccess(
    AgeSignalsAccessRequest.builder()
        .setActivity(fakeActivity)
        .build()
)
    .addOnSuccessListener { /* handle success */ }

জাভা

AgeSignalsAccessResult fakeAccessResult = AgeSignalsAccessResult.builder()
    .setAgeSignalsStatus(AgeSignalsStatus.SHARED) // or NOT_SHARED
    .build();

FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsAccessResult(fakeAccessResult);
manager.requestAgeSignalsAccess(
        AgeSignalsAccessRequest.builder()
            .setActivity(fakeActivity)
            .build())
    .addOnSuccessListener(/* handle success */);

উদাহরণ ২: অ্যাক্সেসের অনুরোধ (ব্যবহারকারী বয়স শেয়ার করেননি)

Kotlin

val fakeAccessResult = AgeSignalsAccessResult.builder()
    .setAgeSignalsStatus(AgeSignalsStatus.NOT_SHARED)
    .build()

val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsAccessResult(fakeAccessResult)
manager.requestAgeSignalsAccess(
    AgeSignalsAccessRequest.builder()
        .setActivity(fakeActivity)
        .build()
)
    .addOnSuccessListener { /* handle success */ }

জাভা

AgeSignalsAccessResult fakeAccessResult = AgeSignalsAccessResult.builder()
    .setAgeSignalsStatus(AgeSignalsStatus.NOT_SHARED)
    .build();

FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsAccessResult(fakeAccessResult);
manager.requestAgeSignalsAccess(
        AgeSignalsAccessRequest.builder()
            .setActivity(fakeActivity)
            .build())
    .addOnSuccessListener(/* handle success */);

উদাহরণ ৩: যাচাই করা প্রাপ্তবয়স্ক (১৮+ বছর)

Kotlin

val fakeVerifiedUser = AgeSignalsResult.builder()
    .setAgeRangeSource(AgeRangeSource.TIER_D)
    .setAgeLower(18)
    .build()

val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsResult(fakeVerifiedUser)
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener { /* handle success */ }

জাভা

AgeSignalsResult fakeVerifiedUser = AgeSignalsResult.builder()
    .setAgeRangeSource(AgeRangeSource.TIER_D)
    .setAgeLower(18)
    .build();

FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeVerifiedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener(/* handle success */);

উদাহরণ ৪: তত্ত্বাবধানে থাকা নাবালক (১৩-১৫ বছর বয়সী)

Kotlin

val fakeSupervisedUser = AgeSignalsResult.builder()
    .setAgeRangeSource(AgeRangeSource.TIER_B)
    .setAgeLower(13)
    .setAgeUpper(15)
    .setInstallId("fake_install_id_123")
    .build()

val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsResult(fakeSupervisedUser)
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener { /* handle success */ }

জাভা

AgeSignalsResult fakeSupervisedUser = AgeSignalsResult.builder()
    .setAgeRangeSource(AgeRangeSource.TIER_B)
    .setAgeLower(13)
    .setAgeUpper(15)
    .setInstallId("fake_install_id_123")
    .build();

FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeSupervisedUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener(/* handle success */);

উদাহরণ ৫: তত্ত্বাবধানে থাকা নাবালক ব্যবহারকারীর অ্যাকাউন্টে উল্লেখযোগ্য পরিবর্তন বাকি আছে

Kotlin

val fakePendingChangeUser = AgeSignalsResult.builder()
    .setAgeRangeSource(AgeRangeSource.TIER_B)
    .setAgeLower(13)
    .setAgeUpper(15)
    .setSignificantChangeStatus(SignificantChangeStatus.PENDING)
    .setInstallId("fake_install_id_123")
    .build()

val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsResult(fakePendingChangeUser)
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener { /* handle success */ }

জাভা

AgeSignalsResult fakePendingChangeUser = AgeSignalsResult.builder()
    .setAgeRangeSource(AgeRangeSource.TIER_B)
    .setAgeLower(13)
    .setAgeUpper(15)
    .setSignificantChangeStatus(SignificantChangeStatus.PENDING)
    .setInstallId("fake_install_id_123")
    .build();

FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakePendingChangeUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener(/* handle success */);

উদাহরণ ৬: অনুমোদিত গুরুত্বপূর্ণ পরিবর্তন সহ তত্ত্বাবধানে থাকা নাবালক

Kotlin

val fakeApprovedChangeUser = AgeSignalsResult.builder()
    .setAgeRangeSource(AgeRangeSource.TIER_B)
    .setAgeLower(13)
    .setAgeUpper(15)
    .setSignificantChangeStatus(SignificantChangeStatus.APPROVED)
    .setSignificantChangeApprovalDate(Date(1777939200000L)) // e.g., 2026-05-01
    .setInstallId("fake_install_id_123")
    .build()

val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsResult(fakeApprovedChangeUser)
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener { /* handle success */ }

জাভা

AgeSignalsResult fakeApprovedChangeUser = AgeSignalsResult.builder()
    .setAgeRangeSource(AgeRangeSource.TIER_B)
    .setAgeLower(13)
    .setAgeUpper(15)
    .setSignificantChangeStatus(SignificantChangeStatus.APPROVED)
    .setSignificantChangeApprovalDate(new Date(1777939200000L)) // e.g., 2026-05-01
    .setInstallId("fake_install_id_123")
    .build();

FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsResult(fakeApprovedChangeUser);
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener(/* handle success */);

উদাহরণ ৭: API ব্যতিক্রম সিমুলেট করা

Kotlin

val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsException(AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR))
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnFailureListener { /* handle error */ }

জাভা

FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsException(new AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR));
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnFailureListener(/* handle error */);

লাইসেন্স টেস্টারদের সাথে টেস্টিং

সাধারণত, Play Age Signals API ব্লক করা থাকে এবং Google Play-এর মাধ্যমে আপডেট করা হয়নি এমন অ্যাপের জন্য APP_NOT_OWNED এরর রিটার্ন করে। লাইসেন্স টেস্টাররা এই চেক এড়িয়ে যেতে পারেন, অর্থাৎ আপনি লাইভ এজ সিগন্যাল API ইন্টিগ্রেশন টেস্ট করার জন্য অ্যাপ সাইডলোড করতে পারবেন। এটি আপনাকে নিজের অ্যাপের নতুন ভার্সন আপলোড না করেই ডিবাগ সিগনেচার সহ ডিবাগ বিল্ড ব্যবহার করতে দেয়। মনে রাখবেন যে অ্যাপ্লিকেশনের প্যাকেজ নামটি অবশ্যই Google Play-এর জন্য কনফিগার করা অ্যাপের সাথে হুবহু মিলতে হবে এবং টেস্টিং ডিভাইসে অ্যাক্টিভ Google অ্যাকাউন্টটি অবশ্যই আপনার Google Play Console অ্যাকাউন্টের জন্য লাইসেন্স টেস্টার হিসেবে রেজিস্টার করতে হবে।