gpt4 book ai didi

android - 判断 PendingIntent 是否是一个 Activity

转载 作者:太空狗 更新时间:2023-10-29 13:05:29 26 4
gpt4 key购买 nike

有没有办法判断 PendingIntentIntentSender 是否会启动 Activity (而不是广播或服务)?

PendingIntent 有一个 isActivity()函数,但它被标记为 @hide

我试图从 here 中复制/粘贴代码但无济于事。

最佳答案

PendingIntent 只是对实际 Intent 的引用。 PendingIntent 实际上不包含任何数据,因此您无法查看它。实际的 Intent 由 Android 本身管理。遗憾的是,您无法获得所需的信息。

注意:以上答案不正确。从 Android 4.1 开始,可以确定由 PendingIntent 包装的 Intent 是否会启动 Activity

你可以使用反射来做到这一点,就像这样:

    PendingIntent pendingIntent = ... // This is the `PendingIntent`
try {
Method method = PendingIntent.class.getDeclaredMethod("isActivity");
method.setAccessible(true);
Boolean isActivity = m.invoke(pendingIntent);
if (isActivity) {
// PendingIntent will launch an Activity
}
} catch (Exception e) {
// Problem using reflection
}

在 Android 4.1 之前的版本上,这将抛出一个 NoSuchMethodException

PendingIntent 上调用(私有(private))方法 isActivity() 会生成对 Android ActivityManager 的调用,询问它是否是PendingIntent 是一个 Activity

关于android - 判断 PendingIntent 是否是一个 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48509725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com