1,判断是否已经创建了快捷方式(在某些机型中需要判断)

1 2 3 4 5 6 7 8 9 10 11 12 13 private boolean hasShortcut() { boolean isInstallShortcut = false ; final ContentResolver cr = activity.getContentResolver(); final String AUTHORITY = "com.android.launcher.settings" ; final Uri CONTENT_URI = Uri.parse( "content://" +AUTHORITY + "/favorites?notify=true" ); Cursor c = cr.query(CONTENT_URI, new String[] { "title" , "iconResource" }, "title=?" , new String[] {mapViewActivity.getString(R.string.app_name).trim()}, null ); if (c!= null && c.getCount()> 0 ){ isInstallShortcut = true ; } return isInstallShortcut ; }

2,创建

1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /** * 为程序创建桌面快捷方式 */ private void addShortcut(){ Intent shortcut = new Intent( "com.android.launcher.action.INSTALL_SHORTCUT" ); //快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); shortcut.putExtra( "duplicate" , false ); //不允许重复创建 /****************************此方法已失效*************************/ //ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName()); //shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));         /******************************end*******************************/      Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);      shortcutIntent.setClassName( this , this .getClass().getName());      shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); //快捷方式的图标 ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext( this , R.drawable.icon); shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); sendBroadcast(shortcut); }

  

3, 删除

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <strong> /** * 删除程序的快捷方式 */ private void delShortcut(){ Intent shortcut = new Intent( "com.android.launcher.action.UNINSTALL_SHORTCUT" ); //快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); String appClass = this .getPackageName() + "." + this .getLocalClassName(); ComponentName comp = new ComponentName( this .getPackageName(), appClass); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp)); sendBroadcast(shortcut); } </strong>

3, 声明权限

在AndroidManifest.xml 文件中声明 创建和删除快捷方式时声明权限

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

更多相关文章

  1. android 通过构造创建进度对话框
  2. Could not get unknown property 'ANDROID_BUILD_SDK_VERSION'
  3. Android(安卓)使用MediaPlayer播放视频切换后台暂停再恢复互前台
  4. android 定时发送短信实现
  5. Android之ShortCut[setResult方式]
  6. Android(安卓)-- App生成快捷方式
  7. Android删除Alarm的方法
  8. android极简原创系列:三层结构和.net
  9. 2011.04.15——— android listView带checkbox

随机推荐

  1. android SDK manager 以及ADT eclipse更
  2. 将android 8.1刷到nexus 6p上
  3. Android(安卓)四种启动模式(Launch Mode)
  4. No resource found that matches the giv
  5. Android-MemoryFile介绍
  6. android 使用Sax 读取xml
  7. Android(安卓)开发 框架系列 OkHttp使用
  8. 字节跳动面试官:Android源码的Binder权限
  9. Android(安卓)完全退出应用方法
  10. Android的系统服务一览