【问题标题】:Install launcher icon in home screen once在主屏幕上安装一次启动器图标
【发布时间】:2012-03-16 03:57:05
【问题描述】:

当用户安装 Android 应用时,会在应用菜单中创建一个启动器图标。我交谈过的许多用户都期望当他们安装应用程序时,一个图标应该会自动出现在他们的主屏幕上(“启动板”)。

很多应用都以某种方式实现了这一点。我的偏好是在安装时出现一个窗口,询问用户“你想添加快捷方式吗?”如果这不可能,任何自动添加快捷方式的代码都可以。

Android 在这里给出一堆代码:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.html 暗示将此代码(和相关的 xml)添加到您的项目中就可以了。但它没有我想要的效果。提供的代码似乎是被动的,我需要以某种方式触发它。

所以我的问题是:

如何触发快捷方式的安装,以及如何确保它只发生一次,最好由某种“应用安装”事件触发?

PS: 一个复杂的因素是我正在使用 PhoneGap 构建我的应用程序,这意味着主要活动不是“活动”而是“DroidGap”。

【问题讨论】:

  • 如果您包含 INSTALL_SHORTCUT 权限,通过 Android Market 安装的应用会自动安装启动器快捷方式。但在发布应用之前,您无法确定:即使通过其他方式从您下载到手机的 APK 进行安装也无法解决问题。

标签: android cordova launcher


【解决方案1】:
    Intent shortcutIntent = new Intent(getApplicationContext(), HomeScreen.class);      
    shortcutIntent.setAction(Intent.ACTION_MAIN);

    Intent addIntent = new Intent();
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AIMS ICD");
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.aims));
    addIntent.putExtra("duplicate", false);
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    getApplicationContext().sendBroadcast(addIntent);

【讨论】:

    【解决方案2】:

    在示例中,它返回setResult(...) 中的intent。我相信您需要运行sendBroadcast(intent) 来触发安装快捷方式。

    【讨论】:

    • 三合会,感谢您的评论。我尝试在 App.java(主要活动)和 LauncherShortcuts.java 本身的不同位置运行 sendBroadcast(intent)。没有结果。
    • 嗯,你的AndroidManifest.xml 中也有<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 吗?
    • 我也注意到示例代码没有调用intent.setAction(Intent.ACTION_CREATE_SHORTCUT),这也是必要的。
    • Hii @triad 我实现了相同并成功创建了图标现在我无法使用快捷方式单击启动应用程序任何建议将不胜感激。?
    【解决方案3】:

    DroidGap 类扩展了 Activity,因此您只需从您提供的链接中添加代码即可添加快捷方式。

    【讨论】:

    • Simon,我尝试从链接中添加代码。那没有用。我包括了 LauncherShortcuts.java 和 LauncherShortcuts.xml,但是当我安装我的应用程序时没有任何反应。当你说“从链接中添加代码”时,也许你有比我更具体的想法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2011-06-18
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2020-09-20
    • 2011-05-12
    相关资源
    最近更新 更多