開発者コンソール

AD/CC設定の読み取りとサブスクライブの実装(Fire TV)

AD/CC設定の読み取りとサブスクライブの実装(Fire TV)

サードパーティアプリの開発者は、音声ガイド(AD)設定とクローズドキャプション(CC)設定の読み取りやサブスクライブを行って、ユーザーがデバイス上でADやCCを有効にしているかどうかを確認することができます。このページでは、Fire TVアプリでこれらの設定を読み取りおよびサブスクライブする方法について説明します。

音声ガイド

音声ガイドは、Fire OSから追加できるセキュア設定です。

音声ガイドの実装

この設定のキーはaccessibility_audio_descriptions_enabledとして定義されます。この値は、ユーザーが初めて有効にしたときにのみセキュア設定に追加されます。デフォルト値は0(オフ)ですが、設定を切り替えると1(オン)に変わります。

AD設定の読み取り

これは通常のセキュア設定であるため、Settings.Secure.getInt(ContentResolver cr, String name, int def)で読み取ることができます。詳細については、getInt関数を参照してください。

AD設定を読み取るコード例は次のとおりです。

// 音声ガイドのセキュア設定の文字列を取得
static final String AUDIO_DESCRIPTION = "accessibility_audio_descriptions_enabled";

// デフォルト値は常にオフ(0)
int audioDescEnabled = Settings.Secure.getInt(getApplicationContext().getContentResolver(),
AUDIO_DESCRIPTION, 0);

// 音声ガイドが有効かどうかを示すブール値を取得
boolean enabled = (audioDescEnabled == 1);

Log.d(TAG, "音声ガイド:" + enabled);

AD設定のサブスクライブ

ContentObserverを作成して登録することで、AD設定をサブスクライブできます。詳細については、ContentObserverのAPIリファレンスを参照してください。

AD設定の変更をサブスクライブするコード例は次のとおりです。

ContentResolver contentResolver = getApplicationContext().getContentResolver();

// 音声ガイドのセキュア設定の文字列を取得
static final String AUDIO_DESCRIPTION = "accessibility_audio_descriptions_enabled";

// 音声ガイドのセキュア設定のURIを取得
static final Uri audio_uri = Settings.Secure.getUriFor
("accessibility_audio_descriptions_enabled");

// コンテンツオブザーバーのセットアップ
ContentObserver observer = new ContentObserver(new Handler()) {
     @Override
     public void onChange(boolean selfChange, Uri uri) {
         // 変更されたURIが音声ガイドのURIと一致するかどうかを確認
        if (uri != null && uri.equals(audio_uri)) {
            int enabled = Settings.Secure.getInt(getApplicationContext().getContentResolver(),
AUDIO_DESCRIPTION, 0);
            Log.d(TAG, "音声ガイド:" + enabled);
        }
    }
};

// 音声ガイドのセキュア設定の変更を登録
contentResolver.registerContentObserver(audio_uri, false, observer);

クローズドキャプション

クローズドキャプションも、Androidオープンソースプロジェクト(AOSP)のセキュア設定で保存されます。

クローズドキャプションの実装

CaptioningManagerを使用して、CCが有効になっているかどうかを示す設定の読み取りやサブスクライブを行うことができます。CaptioningManagerを取得するには、get SystemService(Context.CAPTIONING_SERVICE)を使用します。詳細については、CaptioningManagerクラスCAPTIONING_SERVICEコンテキスト定数を参照してください。

CC設定の読み取り

CC設定を読み取るには、CaptioningManagerを使用してisEnabled()を呼び出します。デフォルト値はfalse(オフ)です。

CC設定を読み取る(およびログに記録する)コード例を次に示します。

// AndroidからCaptioningManagerをインポート
import android.view.accessibility.CaptioningManager;

// CaptioningManagerをコンテキストから取得
CaptioningManager captioningManager = (CaptioningManager) getApplicationContext().getSystemService
(Context.CAPTIONING_SERVICE);

// クローズドキャプションの設定を読み取ってログに記録
Log.d(TAG, "クローズドキャプションの設定:" + captioningManager.isEnabled());

CC設定のサブスクライブ

CC設定をサブスクライブするには、CaptioningChangeListenerをセットアップしてCaptioningManagerに追加します。詳細については、addCaptioningChangeListener関数を参照してください。

CC設定が変更されると、publicメソッドのonEnabledChanged(boolean enabled)が呼び出されます。

CC設定の変更をサブスクライブするコード例は次のとおりです。

// AndroidからCaptioningManagerをインポート
import android.view.accessibility.CaptioningManager;

// CaptioningManagerをコンテキストから取得
CaptioningManager captioningManager = (CaptioningManager) getApplicationContext().getSystemService
(Context.CAPTIONING_SERVICE);

// CaptioningChangeListenerのセットアップ
CaptioningManager.CaptioningChangeListener captionListener = new CaptioningManager.
CaptioningChangeListener() {
    // この場合は、クローズドキャプションの有効/無効が切り替わったらログステートメントを出力
    @Override
    public void onEnabledChanged(boolean enabled) {
        Log.d(TAG, "クローズドキャプション:" + enabled);
    }
};

// CaptioningManagerの変更のリスナーを追加
captioningManager.addCaptioningChangeListener(captionListener);

Last updated: 2025年8月22日