フェンスの登録

フェンスの状態が変化するたびに、アプリは 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 メソッドは必要に応じていくつでも使用できますが、すべてのフェンス コールバックに 1 つの 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);
         }
     });

次のステップ: フェンス コールバックを管理する