快捷方式无法启动活动

时间:2012-09-27 05:32:46

标签: android shortcut

  • 我通过代码创建了一些活动的快捷方式,其中大多数都不能 打开相关活动。我发现它只有在我添加时才有效 过滤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>
    

    (在Go Launcher&amp; MIUI 2.3.7中测试)

  • 我有下面的日志,我应该添加MAIN过滤器吗?

    09-27 13:34:44.075:E / Launcher(7893):启动器没有
    启动Intent的权限{act = android.intent.action.VIEW
    flg = 0x10000000 cmp = / .ui.Activity2 bnds = [349,76] [469,211]}。使 一定要为相应的活动创建一个MAIN intent-filter 或使用此活动的导出属性。

1 个答案:

答案 0 :(得分:5)

如错误消息所示,您可以添加

android:exported="true"

参加您的活动。

虽然如果我正确阅读android文档,这应该是默认值:

  

android:exports

     

是否可以启动活动   其他应用程序的组件 - 如果可以,则为“true”,如果为“则为”false“   不。如果为“false”,则活动只能由组件启动   具有相同用户ID的相同应用程序或应用程序。该   默认值取决于活动是否包含意图过滤器。   没有任何过滤器意味着只能调用活动   通过指定其确切的类名。这意味着活动是   仅供应用程序内部使用(因为其他人不会   知道班级名称)。所以在这种情况下,默认值为“false”。   另一方面,存在至少一个过滤器意味着   该活动旨在供外部使用,因此默认值为   “真”即可。

也许其他人可以澄清这一点。