Android添加(创建)、删除及判断是否存在桌面快捷方式的方法
程序员文章站
2022-11-05 13:54:46
本文实例讲述了android添加(创建)、删除及判断是否存在桌面快捷方式的方法。分享给大家供大家参考。具体实现方法如下:
/**
* 判断桌面是否已添加快捷方式...
本文实例讲述了android添加(创建)、删除及判断是否存在桌面快捷方式的方法。分享给大家供大家参考。具体实现方法如下:
/** * 判断桌面是否已添加快捷方式 * * @param cx * @param titlename * 快捷方式名称 * @return */ public static boolean hasshortcut(context cx) { boolean result = false; // 获取当前应用名称 string title = null; try { final packagemanager pm = cx.getpackagemanager(); title = pm.getapplicationlabel( pm.getapplicationinfo(cx.getpackagename(), packagemanager.get_meta_data)).tostring(); } catch (exception e) { } final string uristr; 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"; } final uri content_uri = uri.parse(uristr); final cursor c = cx.getcontentresolver().query(content_uri, null, "title=?", new string[] { title }, null); if (c != null && c.getcount() > 0) { result = true; } return result; } /** * 删除当前应用的桌面快捷方式 * * @param cx */ public static void delshortcut(context cx) { intent shortcut = new intent( "com.android.launcher.action.uninstall_shortcut"); // 获取当前应用名称 string title = null; try { final packagemanager pm = cx.getpackagemanager(); title = pm.getapplicationlabel( pm.getapplicationinfo(cx.getpackagename(), packagemanager.get_meta_data)).tostring(); log.v("test", "title:" + title); } catch (exception e) { } // 快捷方式名称 shortcut.putextra(intent.extra_shortcut_name, title); intent shortcutintent = cx.getpackagemanager() .getlaunchintentforpackage(cx.getpackagename()); shortcut.putextra(intent.extra_shortcut_intent, shortcutintent); cx.sendbroadcast(shortcut); } /** * 为当前应用添加桌面快捷方式 * * @param cx * @param appname * 快捷方式名称 */ public static void addshortcut(context cx) { intent shortcut = new intent( "com.android.launcher.action.install_shortcut"); intent shortcutintent = cx.getpackagemanager() .getlaunchintentforpackage(cx.getpackagename()); shortcut.putextra(intent.extra_shortcut_intent, shortcutintent); // 获取当前应用名称 string title = null; try { final packagemanager pm = cx.getpackagemanager(); title = pm.getapplicationlabel( pm.getapplicationinfo(cx.getpackagename(), packagemanager.get_meta_data)).tostring(); log.v("test", "title:" + title); } catch (exception e) { } // 快捷方式名称 shortcut.putextra(intent.extra_shortcut_name, title); // 不允许重复创建(不一定有效) shortcut.putextra("duplicate", false); // 快捷方式的图标 parcelable iconresource = intent.shortcuticonresource.fromcontext(cx, r.drawable.icon); shortcut.putextra(intent.extra_shortcut_icon_resource, iconresource); cx.sendbroadcast(shortcut); }
希望本文所述对大家的android程序设计有所帮助。