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