Android 实现添加Icon到桌面功能

本文介绍了一种在Android应用中实现添加游戏至桌面快捷方式的方法。通过WebView加载H5游戏,并利用Intent创建桌面快捷方式,支持自定义图标及传递启动参数。

最近开发了一款游戏,内容主要是以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<Bitmap>(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")
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值