我需要在Android设备上安装应用后收到通知。根据应用程序安装与否的状态,我需要更新一些东西。请帮帮我。
由于 KIRAN
答案 0 :(得分:3)
我相信安装新应用时会广播意图“android.intent.action.PACKAGE_ADDED”。
答案 1 :(得分:0)
我最近遇到了这个问题。这是它对我的工作方式。我的目标是 API 级别 30。我创建了一个广播接收器,它会在设备上安装或卸载应用程序时通知我。
以下是我在 AndroidManifest.xml 中的 Application 标签内的接收器标签。我没有发现 PACKAGE_ADDED 操作对我有用。
<receiver android:name="com.vikasmane.appdatasdk.PackageChangeReceiver" android:exported="true">
<intent-filter android:priority="999">
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<data android:scheme="package"/>
</intent-filter>
</receiver>
接收 PACKAGE_CHANGED 所需的查询标记。这可以添加到清单标签下
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
</queries>
PackageChangeReceiver 接收 PACKAGE_FULLY_REMOVED/PACKAGE_CHANGED。可以使用
检索包名称 val packageName = intent?.data?.encodedSchemeSpecificPart
这是我的广播接收器
class PackageChangeReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// fetching package names from extras
val packageName = intent?.data?.encodedSchemeSpecificPart
when (intent?.action) {
Intent.ACTION_PACKAGE_FULLY_REMOVED -> Toast.makeText(
context,
"${packageName.toString()} uninstalled",
Toast.LENGTH_SHORT
).show()
Intent.ACTION_PACKAGE_CHANGED -> Toast.makeText(
context,
"${packageName.toString()} installed",
Toast.LENGTH_SHORT
).show()
}
}
您可以在我的存储库 https://github.com/vikasvmane/Launcher 中找到此实现以供参考。