【问题标题】:get shortcut intent info from android applications从 android 应用程序获取快捷方式意图信息
【发布时间】: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


    【解决方案1】:

    看起来像这里:

     startActivity(Intent.getIntent(uri));
    

    您实际上正在使用未设置正确操作的意图。试试这个:

     Intent intent = Intent.getIntent(uri);
     intent.setAction(Intent.ACTION_PICK_ACTIVITY);
     startActivity(intent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      相关资源
      最近更新 更多