以下のソースでインストールされたアプリを検知を実装しました。
Android12,13,14はレシーバーが動作したものの、11以下が動作せず、原因がわかる方いらっしゃいますでしょうか。
・BootCompletedはAndroid10でも検知できた
・PACKAGE_CHANGEDのドキュメントを見ましたが、API Levelの制限も問題はなさそう
マニフェスト
<receiver
android:name=".boot.AppInstallReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
レシーバー側
override fun onReceive(context: Context?, intent: Intent) {
val action = intent.action
if (action != null) {
val packageName = intent.data!!.encodedSchemeSpecificPart
if (Intent.ACTION_PACKAGE_CHANGED == action) {
// パッケージが変更された場合の処理
Log.d("PackageChanged", "Package changed: $packageName")
}
}