펜 상태가 변경될 때마다 앱은 PendingIntent
에 의해 콜백을 수신합니다. 앱은 각 울타리를 등록해야 사용할 수 있습니다.
펜스 등록
펜스를 등록하려면 FenceClient
를 사용하고 FenceUpdateRequest
를 구성하려면 FenceClient.updateFences()
를 사용합니다.
추가할 각 울타리에 대해 addFence()
를 호출합니다.
펜스를 등록하고 등록 취소하려면 다음이 필요합니다.
- Google Play 서비스 API 클라이언트 인스턴스
AwarenessFence
인스턴스(펜스 자체)- 상태 변경을 처리하는
PendingIntent
- 펜스를 식별하고
AwarenessFence
-PendingIntent
쌍에 매핑되는 문자열인 펜스 키
다음 코드 예는 updateFences()
를 호출하여 울타리를 등록하는 메서드를 보여줍니다.
Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
.addFence(FENCE_KEY, exercisingWithHeadphonesFence, mPendingIntent)
.build())
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.i(TAG, "Fence was successfully registered.");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "Fence could not be registered: " + e);
}
});
고유한 울타리 키로 여러 울타리를 만들려면 addFence()
를 여러 번 호출하세요. 필요한 만큼 PendingIntent
메서드를 사용할 수 있지만 모든 차단 콜백에 단일 PendingIntent
를 사용하는 것이 좋습니다. 이미 등록된 펜스 키를 사용하여 addFence()
를 호출하면 해당 키의 AwarenessFence
및 PendingIntent
값이 덮어쓰여집니다.
펜스 등록 취소
펜스를 등록 취소하려면 getFenceClient().updateFences()
를 호출하고 FenceUpdateRequest.Builder()
를 사용하여 펜스 업데이트 요청을 생성합니다. 그런 다음 다음 예와 같이 removeFence()
를 호출합니다.
Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
.removeFence(FENCE_KEY)
.build())
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.i(TAG, "Fence was successfully unregistered.");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "Fence could not be unregistered: " + e);
}
});
다음 단계: 펜스 콜백 관리