3

Bluetooth LE 経由で通信するためのカスタム ビーコンがいくつかあります。現在、私は LE スキャンを実行しており、見つかった BLE デバイスの MAC アドレスが私のものであるかどうかを確認しています。

ビーコンの 1 つが範囲内にある場合は、すべてを自分で実装するのではなく、Google Awareness Fence API を使用してトリガーしたいと考えています。しかし、そのような を作成したい場合はAwarenessFence、属性しか定義できません

  • 名前空間、
  • タイプ

TypeFilter を使用する場合:

final BeaconState.TypeFilter typeFilter = BeaconState.TypeFilter.with("abc", "def");
    final AwarenessFence beaconFence = BeaconFence.found(typeFilter);
    Awareness.FenceApi.updateFences(
            client,
            new FenceUpdateRequest.Builder()
                    .addFence(BEACON_FENCE, beaconFence, pi)
                    .build())
            .setResultCallback(new ResultCallback<Status>() {
                @Override
                public void onResult(@NonNull Status status) {
                    if (status.isSuccess()) {
                        Log.i(TAG, "Fence was successfully registered.");
                    } else {
                        Log.e(TAG, "Fence could not be registered: " + status);
                    }
                }
            });

質問:

  1. 名前空間と型は何を意味しますか? これらの属性はすべての BLE デバイスに与えられていますか? ビーコンから何らかの方法で読み取ることができますか? それとも、これは Eddystone 特有のものですか?

  2. ビーコンの MAC アドレスで Awareness API を使用できますか?

4

1 に答える 1

4

1)同じ問題があり、それを解決しました。

https://developers.google.com/beacons/proximity/attachmentsから、フィールド「namespaceType」を持つ添付ファイル コンテキストを取得します。FenceState.TypeFilter のホール文字列を「namespace/type」から「namespace」と「type」に分割するだけです。名前空間は、GoogleDevConsole からのプロジェクト ID である必要があります。

ビーコンをセットアップするには、GooglePlayStore から「ビーコン ツール」(Google Inc.) を入手し、ビーコンを見つけて、そこに添付ファイルを追加できます。


2)私が見る限り:フェンスがトリガーされると、フェンスキーのみが取得されます。したがって、答えはNOです。しかし、getBeaconState() リクエストを作成して、近くにあるビーコンを確認することもできます。

于 2016-07-22T10:17:34.163 に答える