【发布时间】:2013-12-10 17:03:40
【问题描述】:
当用户单击一个按钮时,他会获得支持使用此代码的快捷方式的应用列表。
Intent j;
j = new Intent(Intent.ACTION_PICK_ACTIVITY);
j.putExtra(Intent.EXTRA_INTENT, new Intent(Intent.ACTION_CREATE_SHORTCUT));
j.putExtra(Intent.EXTRA_TITLE, "Create a Shortcut");
startActivityForResult(j, choose_app_for_shortcut);
在他选择应用程序后,我会在 onActivityResul() 方法中使用此代码向用户显示此应用程序支持的快捷方式列表
onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK && data != null) {
switch(requestCode){
case: choose_app_for_shortcut
Intent i = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT);
startActivityForResult(data, pick_shortcut_from_app);
break;
case pick_shortcut_from_app:
?
?
}
}
问题是:我需要什么代码:(case: pick_shortcut_from_app) 来获取运行此快捷方式所需的信息?最终目标是将这些信息存储在一个文件中,以便应用程序记住选择并在应用程序关闭后启动快捷方式意图。我尝试了一些方法,但它导致应用程序崩溃,因此非常感谢您的帮助!
我使用此代码更进一步
String uri = data.toURI().toString();
try {
startActivity(Intent.getIntent(uri));
} catch (URISyntaxException e) {
e.printStackTrace();
}
但我收到一条奇怪的消息,询问我想使用什么应用程序来完成此操作。并且快捷方式来自的应用不在列表中!
【问题讨论】:
标签: android android-intent shortcut