首页
社区
课程
招聘
[求助]如何生成安装应用图标
发表于: 2016-10-10 12:16 3896

[求助]如何生成安装应用图标

2016-10-10 12:16
3896
使用adb install安装安卓应用apk后,怎样让它生成快捷图标呢?就是如何用 pm 或者 am指令,给安装的apk包创建桌面快捷方式。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
private void createShortcut() {  
              
            //创建快捷方式的Intent  
            Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");  
            //不允许重复创建  
            shortcutIntent.putExtra("duplicate", false);  
            //快捷方式名称  
            shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcut_name));  
            //快捷图片  
            Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_launcher_shortcut);  
            shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);  
            //点击快捷图片,运行的程序主入口  
            shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , TargetActivity.class));  
            //发送广播。OK  
            sendBroadcast(shortcutIntent);  
        }  

问题:
上面这段创建桌面快捷方式的代码,如何用am broadcast命令实现呢?
2016-10-10 15:03
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
上面那段代码只要添加权限就可以创建桌面快捷方式了。。。然后看不懂你问的问题╰( ̄▽ ̄)╭
2016-10-10 16:14
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢回复。

上面的代码,实质是调用sendBroadcast发送一个广播,而adb shell am broadcast 也可以发送一个广播。其中,-a com.android.launcher.action.INSTALL_SHORTCUT,相当于代码中的 Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT")。--ez duplicate false相当于shortcutIntent.putExtra("duplicate", false)。

但是,我不知道shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext(), MainActivity.class));用怎样的参数替代?
2016-10-10 20:14
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
其实,我是想做一个用adb install apk来安装程序,用adb shell am broadcast来创建快捷方式的一个小功能。

上面的代码,是给自己的包创建快捷方式,我也不知道怎么给其他安装的包创建?我对java了解不深入,        shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , TargetActivity.class)); 这句如果是其他包,这个Intent 如果创建?
2016-10-11 06:12
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
发现QuickShortcutMaker可以实现类似的功能,不过不知道它是如何用代码实现的
2016-10-11 07:54
0
游客
登录 | 注册 方可回帖
返回
//