이 페이지에서는 다음을 비롯하여 공통 Android 리셀러 라이브러리로 실행할 수 있는 몇 가지 일반적인 작업의 예를 제공합니다.
ResellerService
객체 만들기Customer
객체 만들기- 일괄 기기 소유권 주장하기
- 일괄 기기 소유권 주장 해제하기
- 삼성 기기 교환하기
- Android (Samsung 외) 기기 교환하기
ResellerService
객체 만들기
삼성 및 Google 팩토리 클래스를 사용하여 ResellerService
객체를 만듭니다.
ResellerService
객체를 사용하면 Samsung 및 기타 Android 기기를 등록하는 데 공통적인 메서드 집합을 사용할 수 있습니다.
삼성 기기
아래 예에서는 SamsungResellerServiceFactory
클래스를 사용하여 ResellerService
객체를 만들어 삼성 기기를 관리하는 방법을 보여줍니다.
이를 수행하기 전에 Knox 배포 프로그램 (KDP)을 온보딩해야 합니다.
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
기타 Android 기기
아래 예에서는 GoogleResellerServiceFactory
클래스를 사용하여 ResellerService
객체를 만들어 다른 (삼성 이외의) Android 기기를 관리하는 방법을 보여줍니다. 이렇게 하려면 먼저 제로터치 등록 시작하기의 단계에 따라 resellerId
및 서비스 계정 키를 가져와야 합니다.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
Customer
객체 만들기
삼성 기기와 삼성 이외의 기기를 구매하는 고객에게는 고객 ID가 2개 필요합니다.
삼성 기기
삼성 기기를 관리하려면 고객의 Knox 고객 ID를 사용합니다. Knox 고객 ID를 가져오려면 먼저 Customer
객체를 만들어야 합니다. 이렇게 하려면 SamsungResellerServiceFactory
에서 생성된 SamsungResellerService
를 사용하여 createCustomer
를 호출합니다. 예를 들면 다음과 같습니다.
CreateCustomerRequest request = CreateCustomerRequest.newBuilder()
.setCustomerName("TestCustomer") .addPrimaryEmails("superAdmin@gmail.com")
.putVendorParams("country", "US") .putVendorParams("firstName", "Avery")
.putVendorParams("lastName", "Yamada") .putVendorParams("service", "KME")
.build();
CreateCustomerResponse response = samsungResellerService.createCustomer(request);
String companyId = response.getCustomer().getCompanyReference().getCompanyId();
요청이 성공하면 Knox 고객 ID를 추출할 수 있는 CreateCustomerResponse
객체가 반환됩니다.
기타 Android 기기
다른 Android 기기의 경우 고객이 제로터치 등록 고객 ID를 요구합니다. 고객이 이미 다른 리셀러와 제로터치 등록을 사용하는 경우 기존 고객 ID를 사용합니다. 그렇지 않으면 Customer
객체를 만들어야 합니다. 이렇게 하려면 GoogleResellerServiceFactory
에서 만든 ResellerService
를 사용하여 createCustomer
를 호출하세요. 예를 들면 다음과 같습니다.
CreateCustomerRequest request = CreateCustomerRequest.newBuilder()
.setCustomerName("TestCustomer")
.addPrimaryEmails("owner@gmail.com")
.addSecondaryEmails("admin@gmail.com")
.build();
CreateCustomerResponse response = googleResellerService.createCustomer(request);
String companyId = response.getCustomer().getCompanyReference().getCompanyId();
성공하면 요청이 CreateCustomerResponse
객체를 반환합니다. 응답에서 고객 ID를 검색할 수 있습니다.
기기 일괄 소유권 주장
기기를 소유한다고 주장하면 기기와 고객 간에 연결이 생성됩니다. 예를 들어 고객에게 기기 일괄을 판매하는 경우 해당 고객을 위해 기기를 소유권 주장합니다.
이 예에서는 여러 고객의 여러 제조업체 (삼성 및 기타 Android 기기) 기기 주문이 포함된 기기 일괄 처리 방법을 보여줍니다.
1단계: 기기 및 고객 구성하기
기기 IMEI, 제조업체, 기기가 판매된 고객의 ID가 포함된 표가 있는 경우 주문을 삼성 기기 주문과 기타 Android (삼성 이외) 기기 주문이라는 두 개의 목록으로 구성하는 것이 주문을 관리하는 한 가지 방법입니다. 그런 다음 각 목록에서 고객별로 기기를 그룹화합니다. 예를 들면 다음과 같습니다.
삼성 기기
고객 이름 | 삼성 Knox 고객 ID | 제조업체 | IMEI |
---|---|---|---|
ABC Corp | 11 |
Samsung |
|
기타 Android 기기
고객 이름 | 고객 ID | 제조업체 | IMEI |
---|---|---|---|
ABC Corp | 21 |
Google |
1234567803 |
XYZ Corp | 22 |
Sony |
|
2단계: ClaimDevicesRequest
객체 만들기
삼성 기기
// Note: You can only claim devices for a single customer in each request.
ClaimDevicesRequest claimSamsungDevicesRequest = ClaimDevicesRequest.newBuilder()
.addClaims(
DeviceClaim.newBuilder()
.setCustomer(
CompanyReference.newBuilder()
.setVendor(Vendor.SAMSUNG)
.setCompanyId("11")
.build())
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567801")
.setManufacturer("Samsung")
.build())
.build())
.addClaims(
DeviceClaim.newBuilder()
.setCustomer(
CompanyReference.newBuilder()
.setVendor(Vendor.SAMSUNG)
.setCompanyId("11")
.build())
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567802")
.setManufacturer("Samsung")
.build())
.build())
.build();
기타 Android 기기
ClaimDevicesRequest claimGoogleDevicesRequest = ClaimDevicesRequest.newBuilder()
.addClaims(
DeviceClaim.newBuilder()
.setCustomer(
CompanyReference.newBuilder()
.setVendor(Vendor.GOOGLE)
.setCompanyId("21")
.build())
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.setManufacturer("Google")
.build())
.build())
.addClaims(
DeviceClaim.newBuilder()
.setCustomer(
CompanyReference.newBuilder()
.setVendor(Vendor.GOOGLE)
.setCompanyId("22")
.build())
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567804")
.setManufacturer("Sony")
.build())
.build())
.addClaims(
DeviceClaim.newBuilder()
.setCustomer(
CompanyReference.newBuilder()
.setVendor(Vendor.GOOGLE)
.setCompanyId("22")
.build())
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567805")
.setManufacturer("Sony")
.build())
.build())
.build();
3단계: 고객을 위해 기기 소유권 주장하기
고객을 대신하여 기기를 소유하려면 ClaimDevicesAsync
번으로 전화하세요. 이 예에는 삼성 ResellerService
객체의 요청과 Google ResellerService
객체의 요청이라는 두 가지 요청이 필요합니다.
// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);
ClaimDevicesAsync
요청은 요청의 상태 (진행 중, 완료됨, 오류와 함께 완료, 실패함)가 포함된 Operation
객체의 목록을 반환합니다. 작업 상태를 확인하려면 (예: 응답이 IN_PROGRESS
를 반환한 경우) getOperation
를 호출합니다.
// Samsung devices
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
// Other Android devices
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);
기기 일괄 소유권 주장 해제
기기의 소유권을 주장 해제하면 기기가 고객과 연결 해제됩니다. 기기 주문이 취소되거나 기기 배송을 완료할 수 없는 경우 기기 소유권 주장을 취소해야 할 수 있습니다. 일괄 기기의 소유권 주장을 취소하려면 다음 단계를 따르세요.
1단계: UnclaimDevicesRequest
객체 만들기
삼성 기기
// Each request can only unclaim devices belonging to a single customer. The request must also
// include the customer's Samsung Knox customer ID.
UnclaimDevicesRequest unclaimSamsungDevicesRequest = UnclaimDevicesRequest.newBuilder()
.putVendorParams("customerId", "11")
.addUnclaims(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567801")
.build())
.build())
.addUnclaims(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567802")
.build())
.build())
.build();
기타 Android 기기
UnclaimDevicesRequest unclaimGoogleDevicesRequest = UnclaimDevicesRequest.newBuilder()
.addUnclaims(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.build())
.build())
.addUnclaims(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567804")
.build())
.build())
.addUnclaims(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567805")
.build())
.build())
.build();
2단계: 기기 소유권 주장 취소
기기 소유권 주장을 해제하려면 UnclaimDevicesAsync
를 호출합니다. 이 예에서는 삼성 ResellerService
객체의 요청과 Google ResellerService
객체의 요청, 이렇게 두 개의 개별 요청이 필요합니다.
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);
UnclaimDevicesAsync
요청은 요청 상태 (진행 중, 완료됨, 오류가 있는 완료됨 또는 실패함)가 포함된 Operation
객체 목록을 반환합니다. 작업 상태를 확인하려면 (예: 응답이 IN_PROGRESS
를 반환한 경우) getOperation
를 호출합니다.
삼성 기기
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
기타 Android 기기
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);
삼성 기기 교환
어떤 이유로든 기기를 교체해야 하는 경우 교체할 수 있습니다. 이 예에서는 삼성 기기를 다른 삼성 기기로 교환한다고 가정합니다.
1단계: UnclaimDeviceRequest
객체 만들기
// Note: The request must include the customer's Samsung Knox customer ID.
UnclaimDevicesRequest unclaimSamsungDevicesRequest = UnclaimDevicesRequest.newBuilder()
.putVendorParams("customerId", "11")
.addUnclaims(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567801")
.build())
.build())
.build();
2단계: UnclaimDeviceAsync
호출
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesAsync
요청은 요청 상태 (진행 중, 완료됨, 오류가 있는 완료됨 또는 실패함)가 포함된 Operation
객체 목록을 반환합니다. 작업 상태를 확인하려면 (예: 응답이 IN_PROGRESS
를 반환한 경우) getOperation
를 호출합니다.
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
3단계: ClaimDeviceRequest
객체 만들기
ClaimDevicesRequest claimSamsungDevicesRequest = ClaimDevicesRequest.newBuilder()
.addClaims(
DeviceClaim.newBuilder()
.setCustomer(
CompanyReference.newBuilder()
.setVendor(Vendor.SAMSUNG)
.setCompanyId("11")
.build())
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567806")
.setManufacturer("Samsung")
.build())
.build())
.build();
4단계: ClaimDeviceAsync
호출
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
ClaimDevicesAsync
요청은 요청의 상태 (진행 중, 완료, 오류 발생 또는 실패)를 포함하는 Operation
객체의 목록을 반환합니다. 작업 상태를 확인하려면 (예: 응답이 IN_PROGRESS
를 반환한 경우) getOperation
를 호출합니다.
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Android (삼성 외) 기기 교환
어떤 이유로든 기기를 교체해야 하는 경우 교환할 수 있습니다. 이 예에서는 Android (Samsung 외) 기기를 다른 Android (Samsung 외) 기기로 교환한다고 가정합니다.
1단계: UnclaimDeviceRequest
객체 만들기
UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
.setUnclaim(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.build())
.build())
.build();
2단계: UnclaimDevice
호출
googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);
3단계: ClaimDeviceRequest
객체 만들기
ClaimDeviceRequest claimGoogleDeviceRequest = ClaimDeviceRequest.newBuilder()
.setClaim(
DeviceClaim.newBuilder()
.setCustomer(
CompanyReference.newBuilder()
.setVendor(Vendor.GOOGLE)
.setCompanyId("21")
.build())
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567807")
.setManufacturer("Google")
.build())
.build())
.build();
4단계: ClaimDevice
호출
ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);
호출이 성공하면 deviceId
가 포함된 ClaimDeviceResponse
객체가 반환됩니다. 그러지 않으면 오류 코드가 포함된 일반적인 예외가 발생합니다.