0

我知道我可以创建一个可以放置在主屏幕上的小部件,但是当用户安装应用程序时,是否有可能只有我的标准启动器图标会启动某个活动。但是当用户选择时(例如通过单击我的应用程序中的按钮)会在设备的主屏幕上创建另一个图标,直接链接到另一个活动?因此,通过单击主屏幕上的该图标,我的包中的另一个活动将打开?

如果可能的话,有人有片段吗?

谢谢!

4

1 回答 1

2

感谢这个博客:http: //viralpatel.net/blogs/android-install-uninstall-shortcut-example/

在清单中添加所需的权限:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

在快捷方式所指的清单中添加到您的活动:

   android:exported="true"

然后使用以下方法安装/卸载快捷方式:

 private void addShortcut() {
        //Adding shortcut for MainActivity 
        //on Home screen
        Intent shortcutIntent = new Intent(getApplicationContext(),
                MainActivity.class);

        shortcutIntent.setAction(Intent.ACTION_MAIN);

        Intent addIntent = new Intent();
        addIntent
                .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloWorldShortcut");
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                Intent.ShortcutIconResource.fromContext(getApplicationContext(),
                        R.drawable.ic_launcher));

        addIntent
                .setAction("com.android.launcher.action.INSTALL_SHORTCUT");
        getApplicationContext().sendBroadcast(addIntent);
    }


private void removeShortcut() {

        //Deleting shortcut for MainActivity 
        //on Home screen
        Intent shortcutIntent = new Intent(getApplicationContext(),
                MainActivity.class);
        shortcutIntent.setAction(Intent.ACTION_MAIN);

        Intent addIntent = new Intent();
        addIntent
                .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloWorldShortcut");

        addIntent
                .setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
        getApplicationContext().sendBroadcast(addIntent);
    }

要将活动添加到快捷方式手册中,只需将此意图过滤器添加到清单中的活动:

<intent-filter>
    <action android:name="android.intent.action.CREATE_SHORTCUT" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
于 2013-02-02T17:51:15.290 回答