服务器之家

服务器之家 > 正文

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

时间:2021-03-23 15:18     来源/作者:3H

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

  1. /** 
  2. * 判断桌面是否已添加快捷方式 
  3. * 
  4. * @param cx 
  5. * @param titleName 
  6. * 快捷方式名称 
  7. * @return 
  8. */ 
  9. public static boolean hasShortcut(Context cx) { 
  10. boolean result = false
  11. // 获取当前应用名称 
  12. String title = null
  13. try { 
  14. final PackageManager pm = cx.getPackageManager(); 
  15. title = pm.getApplicationLabel( 
  16. pm.getApplicationInfo(cx.getPackageName(), 
  17. PackageManager.GET_META_DATA)).toString(); 
  18. catch (Exception e) { 
  19. final String uriStr; 
  20. if (android.os.Build.VERSION.SDK_INT < 8) { 
  21. uriStr = "content://com.android.launcher.settings/favorites?notify=true"
  22. else { 
  23. uriStr = "content://com.android.launcher2.settings/favorites?notify=true"
  24. final Uri CONTENT_URI = Uri.parse(uriStr); 
  25. final Cursor c = cx.getContentResolver().query(CONTENT_URI, null
  26. "title=?"new String[] { title }, null); 
  27. if (c != null && c.getCount() > 0) { 
  28. result = true
  29. return result; 
  30. /** 
  31. * 删除当前应用的桌面快捷方式 
  32. * 
  33. * @param cx 
  34. */ 
  35. public static void delShortcut(Context cx) { 
  36. Intent shortcut = new Intent( 
  37. "com.android.launcher.action.UNINSTALL_SHORTCUT"); 
  38. // 获取当前应用名称 
  39. String title = null
  40. try { 
  41. final PackageManager pm = cx.getPackageManager(); 
  42. title = pm.getApplicationLabel( 
  43. pm.getApplicationInfo(cx.getPackageName(), 
  44. PackageManager.GET_META_DATA)).toString(); 
  45. Log.v("test""title:" + title); 
  46. catch (Exception e) { 
  47. // 快捷方式名称 
  48. shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, title); 
  49. Intent shortcutIntent = cx.getPackageManager() 
  50. .getLaunchIntentForPackage(cx.getPackageName()); 
  51. shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
  52. cx.sendBroadcast(shortcut); 
  53. /** 
  54. * 为当前应用添加桌面快捷方式 
  55. * 
  56. * @param cx 
  57. * @param appName 
  58. * 快捷方式名称 
  59. */ 
  60. public static void addShortcut(Context cx) { 
  61. Intent shortcut = new Intent( 
  62. "com.android.launcher.action.INSTALL_SHORTCUT"); 
  63. Intent shortcutIntent = cx.getPackageManager() 
  64. .getLaunchIntentForPackage(cx.getPackageName()); 
  65. shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
  66. // 获取当前应用名称 
  67. String title = null
  68. try { 
  69. final PackageManager pm = cx.getPackageManager(); 
  70. title = pm.getApplicationLabel( 
  71. pm.getApplicationInfo(cx.getPackageName(), 
  72. PackageManager.GET_META_DATA)).toString(); 
  73. Log.v("test""title:" + title); 
  74. catch (Exception e) { 
  75. // 快捷方式名称 
  76. shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, title); 
  77. // 不允许重复创建(不一定有效) 
  78. shortcut.putExtra("duplicate"false); 
  79. // 快捷方式的图标 
  80. Parcelable iconResource = Intent.ShortcutIconResource.fromContext(cx, R.drawable.icon); 
  81. shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource); 
  82. cx.sendBroadcast(shortcut); 

希望本文所述对大家的Android程序设计有所帮助。

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部