ユースケースの実現に他のアプリとの連携が必要な場合、Android 11(API レベル 30)以降のパッケージの公開設定の変更がアプリに及ぼす影響をテストすることをおすすめします。
このガイドでは、動作変更をテストする方法についても説明します。また、ログメッセージを構成してアプリへの影響をさらに細かく調べる方法も説明しています。
動作変更をテストする
このような動作変更がアプリで有効になっているかどうかは、次の手順で確認できます。
- Android Studio 3.6.1 以上をインストールします。
- Android Studio がサポートしている最新バージョンの Gradle をインストールします。
- アプリの
targetSdkVersion
を30
以上に設定します。 - アプリのマニフェスト ファイルに
<queries>
要素は含めないでください。 getInstalledApplications()
またはgetInstalledPackages()
を呼び出します。どちらのメソッドも、成功するとフィルタ済みのリストを返します。- アプリのどの機能が動作していないかを確認します。
- 適切な
<queries>
のエントリを含めて、その機能を修正します。
パッケージ フィルタリングのログメッセージを構成する
アプリのデフォルトの公開設定がアプリに及ぼす影響の詳細を確認するには、パッケージ フィルタリングのログメッセージを有効にします。Android Studio でテストアプリやデバッグ可能なアプリを開発している場合は、システムログでこの機能が提供されます。それ以外の場合は、ターミナル ウィンドウで次のコマンドを実行すると、手動で有効にできます。
adb shell pm log-visibility --enable PACKAGE_NAME
その後で、パッケージが PackageManager
オブジェクトの戻り値からフィルタされるたびに、Logcat に次のようなメッセージが表示されます。
I/AppsFilter: interaction: PackageSetting{7654321 \ com.example.myapp/12345} -> PackageSetting{...} BLOCKED