펜스 상태가 변경될 때마다 앱은 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);
}
});
다음 단계: 펜스 콜백 관리