หากต้องการยืนยันการจัดการสัญญาณอายุและการแชร์อายุ
สถานะต่างๆ ของแอป ให้ใช้ FakeAgeSignalsManager ที่มีอยู่ในอาร์ติแฟกต์การทดสอบ SDK
FakeAgeSignalsManager ช่วยให้คุณจำลองการตอบกลับ API สำหรับการทดสอบหน่วยและการผสานรวม
โดยการแทนที่อินสแตนซ์ AgeSignalsManager ที่ใช้งานจริง
หากต้องการจำลองประเภทการตอบกลับต่างๆ โดยใช้ SDK ของ Play Age Signals API เวอร์ชัน 0.0.4 โปรดดูตัวอย่างต่อไปนี้
ตัวอย่างที่ 1: ขอสิทธิ์เข้าถึง (ผู้ใช้แชร์อายุ)
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 */ }
Java
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 */);
ตัวอย่างที่ 2: ขอสิทธิ์เข้าถึง (ผู้ใช้ไม่ได้แชร์อายุ)
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 */ }
Java
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 */);
ตัวอย่างที่ 3: ผู้ใหญ่ที่ยืนยันแล้ว (อายุ 18 ปีขึ้นไป)
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 */ }
Java
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 */);
ตัวอย่างที่ 4: ผู้เยาว์ภายใต้การควบคุมดูแล (อายุ 13-15 ปี)
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 */ }
Java
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 */);
ตัวอย่างที่ 5: บุตรหลานภายใต้การควบคุมดูแลที่มีการเปลี่ยนแปลงที่สำคัญที่รอดำเนินการ
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 */ }
Java
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 */);
ตัวอย่างที่ 6: บุตรหลานภายใต้การควบคุมดูแลที่มีการเปลี่ยนแปลงที่สำคัญซึ่งได้รับอนุมัติ
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 */ }
Java
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 */);
ตัวอย่างที่ 7: การจำลองข้อยกเว้นของ API
Kotlin
val manager = FakeAgeSignalsManager()
manager.setNextAgeSignalsException(AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR))
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnFailureListener { /* handle error */ }
Java
FakeAgeSignalsManager manager = new FakeAgeSignalsManager();
manager.setNextAgeSignalsException(new AgeSignalsException(AgeSignalsErrorCode.NETWORK_ERROR));
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnFailureListener(/* handle error */);
การทดสอบกับผู้ทดสอบที่ได้รับอนุญาต
โดยปกติแล้ว ระบบจะบล็อก Play Age Signals API และแสดงข้อผิดพลาด APP_NOT_OWNED
สำหรับแอปที่ไม่ได้อัปเดตผ่าน Google Play ผู้ทดสอบใบอนุญาตสามารถข้ามการตรวจสอบนี้ได้ ซึ่งหมายความว่าคุณสามารถโหลดแอปจากแหล่งที่ไม่รู้จักเพื่อทดสอบการผสานรวม Age Signals API ที่ใช้งานจริงได้ ซึ่งจะช่วยให้คุณใช้บิลด์การแก้ไขข้อบกพร่องที่มีลายเซ็นการแก้ไขข้อบกพร่องได้โดยไม่ต้องอัปโหลดแอปเวอร์ชันใหม่ โปรดทราบว่าชื่อแพ็กเกจของแอปพลิเคชันต้องตรงกับแอปที่กำหนดค่าไว้สำหรับ Google Play และบัญชี Google ที่ใช้งานอยู่ในอุปกรณ์ทดสอบต้องลงทะเบียนเป็นผู้ทดสอบใบอนุญาตสำหรับบัญชี Google Play Console