Android 13升级targetSdkVersion到33后,In-App Promo SDK触发应用未安装错误
问题描述
我按照官方教程实现了in-app promo SDK,原本一切正常,但将targetSdkVersion升级至33(Android 13)后,点击任何快捷方式都会弹出显示*"App isn't installed"*的Toast消息,且无法打开应用。

解决方案
针对Android 13(API 33)的权限和行为变更,可按以下步骤排查修复:
添加POST_NOTIFICATIONS权限到AndroidManifest.xml:
Android 13开始创建快捷方式或推送通知需要该权限,缺失会导致快捷方式无法关联应用:<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />动态请求POST_NOTIFICATIONS权限:
在应用启动或初始化SDK前主动请求权限,示例代码(Kotlin):private const val REQUEST_CODE_NOTIFICATIONS = 1001 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) { requestPermissions(arrayOf(Manifest.permission.POST_NOTIFICATIONS), REQUEST_CODE_NOTIFICATIONS) } }检查快捷方式Intent配置:
确保快捷方式的Intent明确指定应用包名或组件,避免包名验证失败:val shortcutIntent = Intent(this, YourTargetActivity::class.java).apply { action = Intent.ACTION_MAIN package = packageName // 绑定当前应用包名 flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK }升级In-App Promo SDK版本:
确认使用的SDK是否已适配Android 13,优先使用官方最新版本,旧版本可能未兼容API 33的行为变更。
内容的提问来源于stack exchange,提问作者Fayçal
相关产品推荐
相关产品推荐

