Android 11 では、アプリがデバイス上にユーザーがインストールした別のアプリに対してクエリまたは操作を行う方法が変更されています。アプリで <queries>
要素を使用することで、アクセス可能な他のパッケージ セットを定義できます。この要素により、アプリに表示する他のパッケージをシステムに指示することで、最小権限の原則を実践していくことができます。また、Google Play などのアプリストアが、アプリがユーザーに提供するプライバシーやセキュリティを評価することもできます。
Android 11 以降をターゲットとするアプリの場合、アプリのマニフェスト ファイルに <queries>
要素が必要になることがあります。<queries>
要素内では、パッケージ名、インテント シグネチャ、またはプロバイダ オーソリティによってパッケージを指定できます。
アプリが Android 11 以降をターゲットとする場合に、他のインストール済みアプリのパッケージの公開設定を管理する方法については、ガイドをご覧ください。
変更をテストする
この動作の変更がアプリで有効になっているかどうかは、次の手順で確認できます。
- Android Studio 3.6.1 以上をインストールします。
- Android Studio がサポートしている最新バージョンの Gradle をインストールします。
- アプリの
targetSdkVersion
を30
に設定します。 - アプリのマニフェスト ファイルに
<queries>
要素は含めないでください。 getInstalledApplications()
またはgetInstalledPackages()
を呼び出します。どちらのメソッドも、フィルタされたリストを返します。- アプリのどの機能が動作していなかを確認します。
- 適切な
<queries>
のエントリを含めて、その機能を修正してください。