如何向用户主屏幕添加部分应用程序的快捷方式? Android的

时间:2014-01-14 20:19:28

标签: android android-intent intentfilter

我是Android的新手,我想重新创建类似于ES将项目固定到桌面的内容。我想在主屏幕上放置一个图标,然后当选择该图标时,它将打开我的应用程序的特定部分。我希望这是可以理解的。我做了一些研究,发现我可能不得不使用Intent-filters来听取意图......

2 个答案:

答案 0 :(得分:1)

这创建了一个向主屏幕(启动器)添加快捷方式的意图:

Intent shortcutIntent = new Intent (this, YourActivity.class);
Intent addIntent = new Intent();

addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Title");
addIntent.putExtra("duplicate", false);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");

然后您可以通过调用实际添加项目:

sendBroadcast(addIntent);

要将特定文件添加到快捷方式,您可以将Intent的数据设置为您要引用的数据的地址:

addIntent.setData(Uri data);

如果您添加的数据没有真实地址,则必须实现自己添加数据标识符的方式。

按下快捷方式后,您将能够从开头Intent中读取数据:

getIntent().getData()

您还需要向AndroidManifest.xml添加以下权限:

com.android.launcher.permission.INSTALL_SHORTCUT

注意:使用的机制未记录,因此可能会在未来的Android迭代中出现问题,并且可能无法与所有设备和第三方发射器配合使用。

答案 1 :(得分:0)

因此,一旦应用启动,您需要应用启动特定活动吗?如果这是你的意思,那么你必须把你的活动作为一个启动器放在清单中。

    <activity
        android:name=".ActivityName"
        android:label="ActivityLabel">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>