【问题标题】:Android - Pick shortcut - I get shortcut intent and title but can't get shortcut iconAndroid - 选择快捷方式 - 我得到快捷方式的意图和标题,但无法获得快捷方式图标
【发布时间】:2014-03-11 19:42:17
【问题描述】:

我已经编写了一个工作代码,用于显示所有应用程序中所有可用快捷方式的列表,并捕获所选快捷方式的意图以及应用程序的名称和快捷方式。但我似乎找不到如何获取快捷方式图标。在 onActivityResult 我尝试了 data.getStringExtra(Intent.EXTRA_SHORTCUT_ICON) 函数,但这会产生一个返回空的字符串。有人可以帮忙吗?

(我想要快捷方式图标...不是应用程序图标)

   @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    Log.w("on activity result ston action picker","aaaa");
    if(resultCode == Activity.RESULT_OK && data != null) {
        switch (requestCode){
        case pick_shortcut:
                Intent j = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT);
                String shortcut_name = data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME);
                ComponentName componentName2 = j.getComponent();
                String packageName2 = componentName2.getPackageName();
                PackageManager packageManager2 =  getPackageManager();
                ApplicationInfo applicationInfo2 = null;
                try {
                    applicationInfo2 = packageManager2.getApplicationInfo(packageName2, 0);
                } catch (final NameNotFoundException e) {}
                String title2 = (String)((applicationInfo2 != null) ? packageManager2.getApplicationLabel(applicationInfo2) : "???");
                Log.w(shortcut_name,title2);
           }
       }
    }

【问题讨论】:

    标签: android icons shortcut


    【解决方案1】:

    你就快到了。

    Intent.EXTRA_SHORTCUT_ICON 应该是一个有节奏的位图,而不是一个字符串。

    所以不要使用:

    data.getStringExtra(Intent.EXTRA_SHORTCUT_ICON)

    你应该看到类似的东西:

    位图图标 = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON);


    编辑:

    附带说明,如果您与第三方应用程序打交道,EXTRA_SHORTCUT_ICON 可能为 null,而 EXTRA_SHORTCUT_ICON_RESOURCE 可能会被传递。

    EXTRA_SHORTCUT_ICON_RESOURCE 是一个ShortcutIconResource,它是一个包含两个字符串的类:packageName 和resourceName。

    (这些可用于加载第三方应用程序的资源,然后使用资源名称获取位图资源。)

    【讨论】:

      猜你喜欢
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 2011-06-19
      相关资源
      最近更新 更多