펜스 등록

펜스 상태가 변경될 때마다 앱은 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()를 호출하기 위해 등록된 펜스 키를 사용하면 해당 키의 AwarenessFencePendingIntent 값을 덮어씁니다.

펜스 등록 취소

펜스를 등록 해제하려면 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);
         }
     });

다음 단계: 펜스 콜백 관리