Android 实现添加Icon到桌面功能

最近开发了一款游戏,内容主要是以WebView加载H5.最近增加了一个添加游戏到桌面的功能.

    public void addShortcut(final Activity cx, final String name) {
        final Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
        ImageUtil.getImageBitmap(mContext, mImageUrl, new SampleProgressObserver(null) {
            @Override
            public void onNext(Bitmap bitmap) {
                if (bitmap != null) {
                    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
                } else {
                    Intent.ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(cx, R.mipmap.ic_launcher);
                    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
                }
                intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
                intent.putExtra("duplicate", false);
                Intent carryIntent = new Intent("android.intent.action.FullScreenWebActivity");
                carryIntent.putExtra("name", name);
                carryIntent.setClassName(cx.getPackageName(), cx.getClass().getName());
                carryIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, carryIntent);
                cx.sendBroadcast(intent);
                Toast.makeText(mContext, "添加成功", Toast.LENGTH_SHORT).show();
            }
        });
    }

这里的桌面图标是使用自定义的ImageUtil类从网络下载的,如果下载到失败的图片,则使用app的Icon作为桌面图标.

注意添加权限:

 
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

如果需要在Activity启动的时候获取一些信息,比如webview需要加载一个url,可以将信息加到carryIntent里面:

  carryIntent.putExtra("url", "http://h5.wan.17k.com/jump/zvero59");

在启动的时候就可以获取到该url了:

String url = this.getIntent().getStringExtra("url")

你可能感兴趣的:(Android)