Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取其他应用程序图标uri?_Android_Icons_Android Appwidget - Fatal编程技术网

Android 获取其他应用程序图标uri?

Android 获取其他应用程序图标uri?,android,icons,android-appwidget,Android,Icons,Android Appwidget,我有一个Android appwidget,上面显示其他应用程序的图标 我使用appInfo.loadIcon获取其他应用程序图标,然后使用setImageViewBitmap将其设置为小部件 问题是,如果小部件上的图标太多,就会出现“失败的活页夹事务”错误。我知道这是一个大小限制,解决方案是使用图像uri而不是位图本身 其他应用程序图标是否有可访问的URI 谢谢。尝试android。资源:/[package]/[res-type]/[res-name],在您的情况下,[res-type]是可绘

我有一个Android appwidget,上面显示其他应用程序的图标

我使用appInfo.loadIcon获取其他应用程序图标,然后使用setImageViewBitmap将其设置为小部件

问题是,如果小部件上的图标太多,就会出现“失败的活页夹事务”错误。我知道这是一个大小限制,解决方案是使用图像uri而不是位图本身

其他应用程序图标是否有可访问的URI


谢谢。

尝试
android。资源:/[package]/[res-type]/[res-name]
,在您的情况下,
[res-type]
是可绘制的。软件包和名称必须来自
ResolveInfo
或您获取数据的任何地方。

虽然在许多情况下都很好,但我发现这通常更容易:
android.resource://[package]/[res id]
-特别是当您需要引用其他应用程序的启动器图标时。

如果您不知道资源名称,您也可以通过其id访问资源:

android.resource://[package]/[res_id]
应用程序图标的资源id可在应用程序的
ApplicationInfo
中找到:

ApplicationInfo appInfo = pm.getApplicationInfo(packageName, 0);
if(appInfo.icon != 0) {
    Uri uri = Uri.parse("android.resource://" + packageName + "/" + appInfo.icon);
}