如何将应用程序的快捷方式添加到主屏幕

Max*_*xim 20 android shortcut android-3.0-honeycomb

我知道它没有记录,也不适用于所有设备,但我看到越来越多的应用程序在安装后将其快捷方式放在主屏幕上.发现一堆代码块如何做到但对我来说它们并不适合.这就是我现在所得到的.

  1. 需要清单中的权限.

    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建应该调用的活动的Intent.Ex(来自cgeek):

    Intent shortcutIntent = new Intent();
    shortcutIntent.setClassName("com.example.androidapp", "SampleIntent");
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建快捷方式

    Intent addIntent = new Intent();
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name");
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.icon));
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    context.sendBroadcast(addIntent);
    
    Run Code Online (Sandbox Code Playgroud)

我的问题是:在安装.apk后,这段代码应该去哪里添加快捷方式?我在启动器活动中尝试了此代码,每次应用启动时都会创建损坏的(另一个故事)快捷方式.

Lef*_*nia 19

据我所知,这是Market应用程序的可选功能,而不是应用程序本身.根据设计,应用程序不会收到有关自身安装的广播.如果该代码有效,则最快可以执行它,这是用户第一次启动应用程序.那说:

做.不.自动.创建.应用.快捷键.

永远.

不要篡夺用户的UI设计.

  • 真的厌倦了人们认为他们比其他人更了解一切"不要这样做,不要那样做,这是邪恶的". (7认同)
  • 应用程序海洋中的1个特殊情况不足以忽视一个相当基本和无争议的经验法则.如果用户不理解如何管理他们的主屏幕,那么更不理由不在那里放置他们不知道如何移除的东西. (6认同)
  • "Do.Not.自动.创建.应用程序.快捷方式." 我不同意.Viber这样做,而Viber就不那么邪恶了.这很有用,因为Viber的目标人物不是书呆子或极客.他们不知道如何管理主屏幕.这是事实. (4认同)
  • 关键是Android是一个不仅用于智能手机或平板电脑的操作系统(有数千台设备!).在其他环境中,您可以为Android开发应用程序,有时甚至根本不使用市场.人们可以有非常好的理由来做你可以在通常情况下称之为邪恶的事情.这也适用于Android开发团队:说明在通常情况下永远不会做的事情并不是限制API在特定点上的借口.这恰好违背了我们除了良好的API和操作系统之外的灵活性. (4认同)