欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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程序设计有所帮助。