0

Nexus 5X 電話を使用しており、Google Awareness API HeadphoneFence.unplugged() https://developers.google.com/android/reference/com/google/android/gms/awareness/fence/HeadphoneFenceを試しています。

フェンスが最初に追加されたときに保留中のインテントが起動することがわかりました。その後、ヘッドフォンを差し込んだり抜いたりしても、プラグを抜くためだけに起動すると思われる場合でも起動します。

私のコードはガイドから直接出てきたものなので、それほど興味はありません。

Awareness.FenceApi.updateFences(
                                getGoogleApiClient(),
                                new FenceUpdateRequest.Builder()
                                        .addFence(
                                                "something",
                                                HeadphoneFence.unplugging();,
                                                createSendHeadphoneUnpluggedMessagePendingIntent(context))
                                        .build())
                                .setResultCallback(new ResultCallback<Status>() {
                                    @Override
                                    public void onResult(@NonNull Status status) {
                                        if(status.isSuccess()) {
                                            Log.i(TAG, "Headphone unplugged fence was successfully registered.");
                                        } else {
                                            Log.e(TAG, "Headphone unplugged fence could not be registered: " + status);
                                        }
                                    }
                                });
4

1 に答える 1

0

@Hermanそれは確かにそれがどのように動作するかのようです。アプリケーションが起動されたとき(フェンス/レシーバーが登録されているとき)、およびプラグを抜き差ししたときのヘッドフォンの状態を示します。

ヘッドフォンが接続されている場合、プラグを抜いていないので、FenceState.FALSE が発生し、プラグを抜くと FenceState.TRUE が発生するというのは、私が推測する方法では理にかなっています。ただし、

switch (fenceState.getCurrentState()) {
                case FenceState.TRUE:
                    Log.i(TAG, "Fence > Headphones plugged out");
                    break;
                case FenceState.FALSE:
                    Log.i(TAG, "Fence > Headphones are NOT plugged out.");
                    break;
                case FenceState.UNKNOWN:
                    Log.i(TAG, "Fence > The headphone fence is in an unknown state.");
                    break;
            }
于 2016-07-01T13:39:44.360 に答える