快捷方式无法启动活动
-
我的代码创建了活动的一些快捷方式,大多无法 打开它的相关活动。我发现它只有在我将 筛选器CREATE_SHORTCUT添加到活动时才起作用。为什么?快捷方式无法启动活动
<activity android:name=".ui.Main" android:launchMode="singleTop" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar" > <intent-filter> <action android:name="android.intent.action.CREATE_SHORTCUT" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
(在转到启动测试& MIUI 2.3.7)
-
我得到了下面的日志,我应该补充主过滤器?
09-27 13:34:44.075:E /发射器(7893):启动器不具有
许可启动意图{行为= android.intent.action.VIEW
FLG = 0x10000000的CMP = /。 ui.Activity2 bnds = [349,76] [469,211]}。请 一定要创建一个主要意图过滤器的相应活动 或使用导出属性为这项活动。
由于错误信息提示,您可以添加
android:exported="true"
到您的活动。
虽然这应该是默认值,如果我读了android文档的权利:
安卓出口
无论活性可以通过其它应用 组件推出 - “如果可以,则为“真”;如果不是,则为“假”。如果为“false”,则活动只能由具有相同用户ID的相同应用程序或应用程序的组件 启动。 默认值取决于活动是否包含意图过滤器。 缺少任何过滤器意味着只能通过指定其确切的类名称才能调用活动 。这意味着活动 仅供应用程序内部使用(因为其他的就 知道类名)。所以在这种情况下,默认值是“false”。 另一方面,至少有一个过滤器的存在意味着 该活动旨在供外部使用,所以默认值为 “true”。
也许别人能澄清这一点。
在文档中很清楚 - 如果您添加带有动作MAIN的
你尝试添加'机器人:出口=“真”'你的活动? (尽管由于意图过滤,它应该默认为真)。 –
我会试试看,以前从未使用过。谢谢。 – thecr0w
@Matt Handy,谢谢。我需要为所有活动添加exported =“true”。不知道是什么引起的。 – thecr0w