펜스 등록

앱은 펜스 상태가 변경될 때마다 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);
         }
     });

다음 단계: 펜스 콜백 관리