[Flutter]Android11(APIレベル30)でテキスト読み上げ機能(Text to Speech)を使う場合はマニフェストファイルの設定が必要

このページには広告が含まれる場合があります。

 

Flutterで、スマホデバイスのテキスト読み上げ機能が簡単に実装できる「flutter_tts」という便利なパッケージがあります。

このパッケージで実装したFlutterプロジェクトをAndroidアプリとして動かそうとする場合に、マニフェストファイルで以下の設定を忘れると「Android11(APIレベル30)の場合「だけ」読み上げ機能が作動しない」というトラップが発生するので注意が必要です(Android11以外はこれがなくても作動します)。

<queries>
  <intent>
    <action
       android:name="android.intent.action.TTS_SERVICE" />
  </intent>
</queries>

blank

このトラップは「flutter_tts」パッケージの公式リファレンスにちょこっとだけ書いてあります(これは気づかんで〜)。

Apps targeting Android 11 that use text-to-speech should declare TextToSpeech.Engine.INTENT_ACTION_TTS_SERVICE in the queries elements of their manifest.

blank

なぜ、Android11(APIレベル30)だけこれが必要なのかというと、Android11では、パッケージ(デバイス内の他のアプリやライブラリ)へアプリ内からアクセスする際に、そのパッケージをマニフェストファイルで宣言しないといけない仕様に変更となったからです。

これに伴って、Android11(APIレベル30)では、Androidデバイスに備わっているテキスト読み上げ機能(TTSエンジン)を使う場合に、その宣言をマニフェストファイルで行うことが必要となったようです。

blank

ただ、このAndroidの公式リファレンスを見ると、「Android 11以降」と書いてあるのに、なぜTTSエンジンについては「Android11だけ」マニフェストファイルの設定が必要になるのかはよくわかりません。

Android 11 では、アプリがデバイス上にユーザーがインストールした別のアプリに対してクエリまたは操作を行う方法が変更されています。アプリで <queries> 要素を使用することで、アクセス可能な他のパッケージ セットを定義できます。この要素により、アプリに表示する他のパッケージをシステムに指示することで、最小権限の原則を実践していくことができます。また、Google Play などのアプリストアが、アプリがユーザーに提供するプライバシーやセキュリティを評価することもできます。

Android 11 以降をターゲットとするアプリの場合、アプリのマニフェスト ファイルに <queries> 要素が必要になることがあります。

https://developer.android.com/about/versions/11/privacy/package-visibility?hl=ja

 

(詳しくは、以下の動画で解説していますので、よろしければご覧ください)

(注)以下のフォームより当社公式メールマガジンにご登録頂くことで
約6時間のFlutter動画講座が無料で受講できます!

(メールマガジンは登録無料・いつでも解除可)

[体験版]
ゼロからのFlutter
(Flutter初級編) 

 

【体験版講座に含まれるもの】
・約70本・約6時間の動画テキスト
・1つの課題アプリのソースコード
・Flutterアプリを作るための「環境構築ライブサポート(Google Meet)」
(「体験版」は全30時間超の「製品版」の約1/6を抜粋した講座です。「製品版」の詳細はこちらから)

 

【当社公式メルマガご登録6大特典】
blank

\約6時間動画講座を無料プレゼント!/
今すぐ無料体験版に申し込む ▶
無料メルマガ登録で講座割引クーポンなど6大特典ゲット!

こんな記事も読まれています

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)
blank

はじめての方へ

blank
みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

みんプロ作成アプリ

blank
blank
blank
blank
blank

みんプロ式動画講座(コア・Flutter)

ゼロからのFlutter(初級編)-はじめてのプログラミングからアプリリリースまで-
Flutter中級編1-Web通信・設計・状態管理・DIの基礎-
Flutter中級編2-Firebase/地図・カメラ連携等の基礎-
Flutter中級編3-広告/アプリ内課金等の基礎-
Flutter中級編4-Webアプリとレスポンシブデザインの基礎-

みんプロ式動画講座(サテライト)

Flutter/Dartトラブルシューティング・小ネタ集(コア初級編受講で無料プレゼント)
ゼロからのGit・GitHub(コマンドラインツールを極力使わないバージョン管理入門)
Flutter/Dartにおける設計・状態管理・DIの解説集
Dart逆引き大辞典
Flutterにおけるテストの基礎
blank
blank

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)
TOP