在有些应用第一次打开的时候,会弹出对应的提示信息,“是否在桌面添加快捷方式”,其实现如下:
private boolean addShortCut(Context context, String pkg) {
//快捷方式名称
String name = "unknown";
String mainAct = null;
//快捷图标ID
int iconIdentifier = -1;
PackageManager pkManager = context.getPackageManager();
//创建Intent,用来Activity的查询
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//得到Activity的list
List<ResolveInfo> list = pkManager.queryIntentActivities(intent, PackageManager.GET_ACTIVITIES);
for(ResolveInfo info : list) {
//和传入的pkg一致时,进行处理
if(TextUtils.equals(info.activityInfo.packageName, pkg)) {
//得到应用名称,做为快捷名
name = info.loadLabel(pkManager).toString();
//得到应用图标
iconIdentifier = info.activityInfo.applicationInfo.icon;
//得到该应用入口类的全类名
mainAct = info.activityInfo.name;
break;
}
}
if(TextUtils.isEmpty(mainAct)) {
return false;
}
//创建快捷方式的Intent
Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
//不允许重复创建快捷方式
shortcut.putExtra("duplicate", false);
ComponentName comp = new ComponentName(pkg, mainAct);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));
Context pkgContext = null;
if(TextUtils.equals(pkg, context.getPackageName())) {
pkgContext = context;
}else{
try {
//利用对应的PKG名称,构建Context
pkgContext = context.createPackageContext(pkg, Context.CONTEXT_IGNORE_SECURITY | CONTEXT_INCLUDE_CODE);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
//添加快捷方式的图标
if(pkgContext != null) {
ShortcutIconResource iconResource = Intent.ShortcutIconResource.fromContext(pkgContext, iconIdentifier);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
}
//发送创建快捷方式的广播
//需要在AndroidManifest.xml添加创建快捷方式的权限
// <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
context.sendBroadcast(shortcut);
return true;
}
分享到:
相关推荐
这个话题主要涵盖的是如何在Android应用中检查用户是否赋予了创建桌面快捷方式的权限,以及如何适当地处理这一过程。 首先,我们需要理解Android的权限系统。在Android 6.0(API级别23)之前,应用在安装时会一次性...
在Android系统中,为应用程序创建桌面快捷方式是提高用户体验的重要方式之一。用户可以通过快捷方式轻松访问常用功能,而无需每次都打开整个应用。本教程将详细解释如何通过源代码实现这一功能,同时也参考了名为...
本篇将详细讲解如何检查Android应用是否已创建桌面快捷方式以及如何创建快捷方式。 首先,我们需要理解Android中的快捷方式是如何工作的。在Android系统中,快捷方式是一个指向应用程序特定Activity的Intent对象,...
在Android操作系统中,桌面快捷方式是一种便捷的方式,允许用户快速访问他们经常使用的应用程序、联系人、设置或者其他功能。本文将详细讲解如何创建和删除Android桌面快捷方式,以及它们的工作原理。 **一、创建...
这篇2011年的博客文章"2011.09.09(2)——— android 桌面添加快捷方式"探讨了如何在Android开发中创建自定义桌面快捷方式。下面我们将详细讨论这个主题,以及涉及的相关知识点。 首先,我们需要理解Android的...
对于添加快捷方式,需要添加`<uses-permission>`标签,声明`android.permission.INSTALL_SHORTCUT`权限,例如: ```xml <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> `...
可以实现为手机上的某个应用添加桌面快捷方式、移除某个应用到快捷方式 如有问题,请浏览我的博客:http://blog.csdn.net/u011268102/article/details/9335971
在Android应用中创建快捷方式的基本步骤如下: 1. **创建Intent对象**:用于指定安装快捷方式的动作。 2. **设置Intent的Extra参数**: - `EXTRA_SHORTCUT_INTENT`:指定启动应用的Intent。 - `EXTRA_SHORTCUT_...
在Android平台上,添加桌面快捷方式是一项常见的功能,它允许用户快速访问特定的应用或功能,而无需每次都通过应用抽屉寻找。这个过程涉及到Android系统的Intent机制、BroadcastReceiver以及动态创建快捷方式的API。...
总的来说,`checkUtil.java`这个工具类是Android应用在华为、小米、OPPO、vivo等设备上实现快捷方式权限判断的关键,它帮助开发者处理了各品牌设备特有的权限需求,确保应用的快捷方式功能可以在各种环境下正常运行...
在 AndroidManifest.xml 文件中,需要添加 `<uses-permission>` 标签,以便允许应用程序创建桌面快捷方式。 ShortcutIntent ShortcutIntent 是一种特殊的 Intent,用于创建桌面快捷方式。ShortcutIntent 需要指定...
总之,通过解析和研究这个源码,开发者能够掌握如何在Android应用中创建和管理桌面快捷方式,进一步提升应用的用户体验和便捷性。这是一项对任何Android开发者都十分实用的技术,尤其对于那些希望实现个性化功能或者...
总结,创建Android应用快捷方式是提高用户体验的有效途径,通过`ShortcutManager`我们可以轻松地实现这一功能。在设计快捷方式时,要注意兼容性、用户权限和最佳实践,以确保快捷方式的实用性和用户体验。
5. **九宫格菜单**:部分设备可能有九宫格菜单,用户也可以通过点击菜单中的“添加”或“添加快捷方式”,然后选择目标应用,快速将快捷方式添加到桌面。 对于特定功能的快捷方式,比如QQ中的联系人,操作会略有...
本文将深入探讨如何在Android中实现Launcher功能,特别是添加快捷方式的部分。 首先,我们需要理解Android快捷方式的工作原理。快捷方式是用户在主屏幕上创建的指向特定应用程序或操作的图标,它通过Intent对象来...
在 Android 桌面应用程序中,Home 分析目录是非常重要的组件之一,负责管理桌面上的图标、快捷方式、widget 等元素。Home 分析目录的主要功能包括: 1. 桌面图标管理:Home 分析目录负责管理桌面上的图标,包括添加...
总的来说,Android应用自动创建桌面快捷方式是通过发送一个特定的Broadcast Intent实现的,涉及到对`com.android.launcher.permission.INSTALL_SHORTCUT`权限的使用。同时,应考虑到用户体验,合理地控制创建快捷...
你需要获取ShortcutManager实例,并调用`addDynamicShortcuts()`或`addStaticShortcuts()`方法添加快捷方式。例如: ```java ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class); ...
本篇将深入探讨如何在Android应用中实现快捷方式的添加、删除以及查询其是否存在。 首先,我们需要了解Android的Shortcut API。自Android Nougat (API 25)开始,引入了Dynamic Shortcuts,允许开发者动态创建和更新...