主屏幕快捷方式与图标

我试图在android上以编程方式创建主屏幕快捷方式。 到目前为止,我已经能够使用以下代码添加快捷方式:

Intent shortcutIntent = new Intent(); shortcutIntent.setClassName(mContext, mContext.getClass().getName()); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); shortcutIntent.putExtra("someParameter", "HelloWorld 123"); Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name 123"); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, R.drawable.icon); addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); mContext.sendBroadcast(addIntent); 

但是,使用我的资源中的默认图标安装快捷方式。 但是,我想从我的网站上获取图标并在快捷方式中添加一个图标。 首先,我需要下载此快捷方式。 假设我已完成此操作,并且图标位于SD卡上,例如,我无法设置可绘制图标。

以下代码:

 try { Uri contentURI = Uri.parse("http://sofzh.miximages.com/java/test.png"); ContentResolver cr = mContext.getContentResolver(); InputStream in; in = cr.openInputStream(contentURI); BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize=8; Bitmap thumb = BitmapFactory.decodeStream(in,null,options); Intent shortcutIntent = new Intent(); shortcutIntent.setClassName(mContext, mContext.getClass().getName()); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); shortcutIntent.putExtra("someParameter", "HelloWorld 123"); Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name 123"); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, thumb); addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); mContext.sendBroadcast(addIntent); } catch (FileNotFoundException e) { e.printStackTrace(); } 

该文件肯定存在,我已经validation使用adb shell …这段代码显示以下错误:

 10-13 16:11:31.184: WARN/System.err(23273): java.io.FileNotFoundException: No content provider: /mnt/sdcard/mytest/test.png 

我究竟做错了什么?

谢谢

您正尝试从本地资源获取位图(通过使用内容提供程序)。

要从服务器下载位图,您应该遵循:

为什么这个图像位图不能在Android中下载?

您的应用程序似乎无法访问test.png。 确保它存在。 也许你可以从本地存储而不是SD卡开始。