当用户安装了一个应用,这个应用的开发者如果足够自信或者基于其他一些原因,当然希望用户也能安装自己其他的应用去试试,这样就能笼络更多用户,将网撒的更大.所以也就不难理解为啥很多时候我们明明就安装了一个新闻应用,但手机桌面却多了一个游戏市场的应用图标,然后我们点击这个图标就会安装这对应的APP游戏市场应用.更进一步,就做到静默安装,在后台安装了新的应用,用户回到桌面才发现, "OMG 我啥时候下了这apk我自己都不知道..."
这次我们用简单的方法先实现创建手机桌面的快捷方式,并点击该图标即可安装新的APK应用.
创建快捷方式
/** * 创建快捷方式 */ private void SetLauncherLogo(){ Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); //快捷方式的名称 shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "我是标题"); //设置快捷方式图片 Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.img_1); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); //设置点击快捷图片后所启动的Activity,在这个Activity可以自定义各种行为 比如安装新的APK应用 shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , MainActivity.class)); //向系统发送广播 sendBroadcast(shortcutintent); }
安装APK文件
这里的apk安装包,可以在原本的应用中就后台下载好并放在指定的存储空间,这样当点击快捷方式进入目标Activity中是就能直接安装指定的apk文件了.
/** * 安装某个路径下的apk文件 */ private void installApk(){ try{ Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File("/mnt/sdcard/MyApks/xxx.apk")), "application/vnd.android.package-archive"); this.startActivity(intent); }catch(Exception e){ }finally{ } }
在目标Activity中的onCreate()直接调用installApk()方法,即可实现点击桌面图标并安装新应用.
,如果本地没有已准备好的apk,则可选择去服务器下载apk并实现安装.
以上就是简单的通过创建桌面快捷方式并安装新应用的方法.如何后台静默安装,后面找个时间再记录下来.
时间: 2024-12-23 04:54:47