gpt4 book ai didi

android - 尝试从 URI 启动时出现 "Exported activity does not require permission"

转载 作者:IT王子 更新时间:2023-10-29 00:10:04 24 4
gpt4 key购买 nike

我正在尝试使用 this SO question 从 URI 启动 Android 应用程序作为引用。

我有一个包含以下声明 Activity 的 list 文件:

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http" android:host="example.com" />
</intent-filter>
</activity>

我正在尝试使用 http://example.com 启动 MainActivity关联。我的问题是我收到警告

"exported activity does not require permission"

我查看了报告相同警告的其他 SO 问题,但所有解决方案似乎都不起作用。

如何正确编写 Activity Intent 过滤器以避免出现警告?

谢谢

最佳答案

当我将 SDK 更新到版本 20 时,我遇到了同样的问题。我删除它添加 android:exported 属性:

<activity 
android:name=".MainActivity"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http" android:host="example.com" />
</intent-filter>
</activity>

在 list 中的 Activity 声明中。当然,如果 Activity 仅用于应用程序内部使用,您可以指定此项

修复它的原因见 docs :

android:exported:默认值取决于activity是否包含intent filter。没有任何过滤器意味着该 Activity 只能通过指定其确切的类名来调用。这意味着该 Activity 仅供应用程序内部使用(因为其他人不知道类名)。所以在这种情况下,默认值为“false”。另一方面,存在至少一个过滤器意味着该 Activity 是供外部使用的,因此默认值为“true”

既然“导出的接收者不需要权限”(至少LINT消息是清楚的),你明白了。

关于android - 尝试从 URI 启动时出现 "Exported activity does not require permission",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11462936/

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