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

 更新时间:2015年05月21日 10:12:01   作者:3H  
这篇文章主要介绍了Android添加(创建)、删除及判断是否存在桌面快捷方式的方法,涉及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程序设计有所帮助。

相关文章

  • 详解如何从原生Android 跳转到hbuilder项目

    详解如何从原生Android 跳转到hbuilder项目

    这篇文章主要介绍了从原生Android 跳转到hbuilder项目,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Android编程实现图片的浏览、缩放、拖动和自动居中效果

    Android编程实现图片的浏览、缩放、拖动和自动居中效果

    这篇文章主要介绍了Android编程实现图片的浏览、缩放、拖动和自动居中效果,以具体实例形式分析了Android针对图片各种常见显示效果的布局及功能实现技巧,需要的朋友可以参考下
    2015-11-11
  • Kotlin Thread线程与UI更新详解

    Kotlin Thread线程与UI更新详解

    本篇主要介绍Kotlin中Thread线程与UI更新,注意不是协程而是线程。Kotlin本身是支持线程的。同时协程也是运行在线程中的
    2022-12-12
  • Android使用ContentResolver搜索手机通讯录的方法

    Android使用ContentResolver搜索手机通讯录的方法

    这篇文章主要介绍了Android使用ContentResolver搜索手机通讯录的方法,结合实例形式分析了Android中ContentResolver操作手机通讯录的具体步骤与相关实现技巧,需要的朋友可以参考下
    2016-01-01
  • android设置adb自带screenrecord录屏命令

    android设置adb自带screenrecord录屏命令

    这篇文章主要介绍了android设置adb自带screenrecord录屏命令,需要的朋友可以参考下
    2018-11-11
  • Android6.0动态申请权限所遇到的问题小结

    Android6.0动态申请权限所遇到的问题小结

    这篇文章给大家介绍了Android6.0动态申请权限所遇到的问题,在没给大家介绍这下问题之前,先给大家说下基本定义和基本使用方式,本文给大家介绍的非常详细,具有参考借鉴价值,对android 6.0 动态权限遇到问题感兴趣的朋友一起看看吧
    2016-11-11
  • Android 防止多次重复点击的三种方法的示例

    Android 防止多次重复点击的三种方法的示例

    本篇文章主要介绍了Android 防止多次重复点击的三种方法的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Android 多线程的实现方法总结

    Android 多线程的实现方法总结

    这篇文章主要介绍了Android 多线程的实现方法总结的相关资料,这里提供三种方法,帮助大家掌握这部分内容,需要的朋友可以参考下
    2017-08-08
  • Android ViewFlipper的详解及实例

    Android ViewFlipper的详解及实例

    这篇文章主要介绍了Android ViewFlipper的详解及实例的相关资料,通过本文希望能帮助大家理解这部分内容,需要的朋友可以参考下
    2017-08-08
  • 老生常谈ProgressBar、ProgessDialog的用法

    老生常谈ProgressBar、ProgessDialog的用法

    下面小编就为大家带来一篇老生常谈ProgressBar、ProgessDialog的用法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论