当用户点击按钮时,他会获得支持此代码的快捷方式的应用列表。
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();
}
但是我得到了一个奇怪的消息,问我想用什么应用来完成这个动作。快捷方式来自的应用程序不在列表中!
答案 0 :(得分:0)
看起来像这样:
startActivity(Intent.getIntent(uri));
您实际上正在使用没有正确操作集的意图。试试这个:
Intent intent = Intent.getIntent(uri);
intent.setAction(Intent.ACTION_PICK_ACTIVITY);
startActivity(intent);