Android添加(创建)、删除及判断是否存在桌面快捷方式的方法

时间:2021-05-02

本文实例讲述了Android添加(创建)、删除及判断是否存在桌面快捷方式的方法。分享给大家供大家参考。具体实现方法如下:

  • /**
  • *判断桌面是否已添加快捷方式
  • *
  • *@paramcx
  • *@paramtitleName
  • *快捷方式名称
  • *@return
  • */
  • publicstaticbooleanhasShortcut(Contextcx){
  • booleanresult=false;
  • //获取当前应用名称
  • Stringtitle=null;
  • try{
  • finalPackageManagerpm=cx.getPackageManager();
  • title=pm.getApplicationLabel(
  • pm.getApplicationInfo(cx.getPackageName(),
  • PackageManager.GET_META_DATA)).toString();
  • }catch(Exceptione){
  • }
  • finalStringuriStr;
  • if(android.os.Build.VERSION.SDK_INT<8){
  • uriStr="content://com.android.launcher.settings/favorites?notify=true";
  • }else{
  • uriStr="content://com.android.launcher2.settings/favorites?notify=true";
  • }
  • finalUriCONTENT_URI=Uri.parse(uriStr);
  • finalCursorc=cx.getContentResolver().query(CONTENT_URI,null,
  • "title=?",newString[]{title},null);
  • if(c!=null&&c.getCount()>0){
  • result=true;
  • }
  • returnresult;
  • }
  • /**
  • *删除当前应用的桌面快捷方式
  • *
  • *@paramcx
  • */
  • publicstaticvoiddelShortcut(Contextcx){
  • Intentshortcut=newIntent(
  • "com.android.launcher.action.UNINSTALL_SHORTCUT");
  • //获取当前应用名称
  • Stringtitle=null;
  • try{
  • finalPackageManagerpm=cx.getPackageManager();
  • title=pm.getApplicationLabel(
  • pm.getApplicationInfo(cx.getPackageName(),
  • PackageManager.GET_META_DATA)).toString();
  • Log.v("test","title:"+title);
  • }catch(Exceptione){
  • }
  • //快捷方式名称
  • shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,title);
  • IntentshortcutIntent=cx.getPackageManager()
  • .getLaunchIntentForPackage(cx.getPackageName());
  • shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,shortcutIntent);
  • cx.sendBroadcast(shortcut);
  • }
  • /**
  • *为当前应用添加桌面快捷方式
  • *
  • *@paramcx
  • *@paramappName
  • *快捷方式名称
  • */
  • publicstaticvoidaddShortcut(Contextcx){
  • Intentshortcut=newIntent(
  • "com.android.launcher.action.INSTALL_SHORTCUT");
  • IntentshortcutIntent=cx.getPackageManager()
  • .getLaunchIntentForPackage(cx.getPackageName());
  • shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,shortcutIntent);
  • //获取当前应用名称
  • Stringtitle=null;
  • try{
  • finalPackageManagerpm=cx.getPackageManager();
  • title=pm.getApplicationLabel(
  • pm.getApplicationInfo(cx.getPackageName(),
  • PackageManager.GET_META_DATA)).toString();
  • Log.v("test","title:"+title);
  • }catch(Exceptione){
  • }
  • //快捷方式名称
  • shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,title);
  • //不允许重复创建(不一定有效)
  • shortcut.putExtra("duplicate",false);
  • //快捷方式的图标
  • ParcelableiconResource=Intent.ShortcutIconResource.fromContext(cx,R.drawable.icon);
  • shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,iconResource);
  • cx.sendBroadcast(shortcut);
  • }
  • 希望本文所述对大家的Android程序设计有所帮助。

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章