Android 14 标志可变

Android 14 flag mutable

提问人:mohammad hassan 提问时间:10/17/2023 最后编辑:mohammad hassan 更新时间:10/17/2023 访问量:160

问:

我正在努力在某个应用程序中支持 android 14,我在 android 原生共享表上遇到了一个问题,因为我们有一个待处理的意图FLAG_MUTABLE,我收到此错误

2023-10-16 14:23:20.368 10001-10001        com.package.x.android.shopping    E  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.package.x.android.shop/com.package.x.NativeShareActivity}: java.lang.IllegalArgumentException: com.package.x.android.shop: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.

根据 android 14 文档,出于安全原因,无法再使用 flag_mutable pendingIntent,将 pending intent 更改为 FLAG_IMMUTABLE 将阻止我们获取客户选择的共享频道,有没有办法使用 flag*_immutable 并且仍然能够获取客户选择的共享频道。

我试图将意图类型更改为显式,但是我不确定在这种情况下应该是什么组件名称。

谢谢。

不可变性 android-pendingintent android-14 android-sharesheet

评论

0赞 David Wasser 10/20/2023
请编辑您的问题并显示相关代码。我不太明白你想做什么。
0赞 Darush 12/20/2023
您仍然可以将FLAG_MUTABLE与显式和隐式意图一起使用: stackoverflow.com/a/77691101/4726718

答:

0赞 David Wasser 12/1/2023 #1

组件名称在错误消息中给出:

com.package.x.android.shop/com.package.x.NativeShareActivity

要明确,您只需要将包名称设置为 。Intentcom.package.x.android.shop