`
yq135314
  • 浏览: 255511 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android应用在桌面添加快捷方式

 
阅读更多

在有些应用第一次打开的时候,会弹出对应的提示信息,“是否在桌面添加快捷方式”,其实现如下:

 

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的权限系统。在Android 6.0(API级别23)之前,应用在安装时会一次性...

    android向桌面添加快捷方式

    在Android系统中,为应用程序创建桌面快捷方式是提高用户体验的重要方式之一。用户可以通过快捷方式轻松访问常用功能,而无需每次都打开整个应用。本教程将详细解释如何通过源代码实现这一功能,同时也参考了名为...

    android 检查是否创建桌面快捷方式以及创建快捷方式

    本篇将详细讲解如何检查Android应用是否已创建桌面快捷方式以及如何创建快捷方式。 首先,我们需要理解Android中的快捷方式是如何工作的。在Android系统中,快捷方式是一个指向应用程序特定Activity的Intent对象,...

    Android 桌面快捷方式

    在Android操作系统中,桌面快捷方式是一种便捷的方式,允许用户快速访问他们经常使用的应用程序、联系人、设置或者其他功能。本文将详细讲解如何创建和删除Android桌面快捷方式,以及它们的工作原理。 **一、创建...

    2011.09.09(2)——— android 桌面添加快捷方式

    这篇2011年的博客文章"2011.09.09(2)——— android 桌面添加快捷方式"探讨了如何在Android开发中创建自定义桌面快捷方式。下面我们将详细讨论这个主题,以及涉及的相关知识点。 首先,我们需要理解Android的...

    应用程序 直接添加快捷方式到桌面

    对于添加快捷方式,需要添加`&lt;uses-permission&gt;`标签,声明`android.permission.INSTALL_SHORTCUT`权限,例如: ```xml &lt;uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /&gt; `...

    为其他应用添加、移除桌面快捷方式的Demo

    可以实现为手机上的某个应用添加桌面快捷方式、移除某个应用到快捷方式 如有问题,请浏览我的博客:http://blog.csdn.net/u011268102/article/details/9335971

    android系统判断快捷方式是否存在、添加删除快捷方式

    在Android应用中创建快捷方式的基本步骤如下: 1. **创建Intent对象**:用于指定安装快捷方式的动作。 2. **设置Intent的Extra参数**: - `EXTRA_SHORTCUT_INTENT`:指定启动应用的Intent。 - `EXTRA_SHORTCUT_...

    android 添加桌面快捷方式

    在Android平台上,添加桌面快捷方式是一项常见的功能,它允许用户快速访问特定的应用或功能,而无需每次都通过应用抽屉寻找。这个过程涉及到Android系统的Intent机制、BroadcastReceiver以及动态创建快捷方式的API。...

    android 快捷方式的权限判断。

    总的来说,`checkUtil.java`这个工具类是Android应用在华为、小米、OPPO、vivo等设备上实现快捷方式权限判断的关键,它帮助开发者处理了各品牌设备特有的权限需求,确保应用的快捷方式功能可以在各种环境下正常运行...

    android创建桌面快捷方式指向PDF文件

    在 AndroidManifest.xml 文件中,需要添加 `&lt;uses-permission&gt;` 标签,以便允许应用程序创建桌面快捷方式。 ShortcutIntent ShortcutIntent 是一种特殊的 Intent,用于创建桌面快捷方式。ShortcutIntent 需要指定...

    Android高级应用源码-创建桌面快捷方式源代码.zip

    总之,通过解析和研究这个源码,开发者能够掌握如何在Android应用中创建和管理桌面快捷方式,进一步提升应用的用户体验和便捷性。这是一项对任何Android开发者都十分实用的技术,尤其对于那些希望实现个性化功能或者...

    android 创建应用快捷方式

    总结,创建Android应用快捷方式是提高用户体验的有效途径,通过`ShortcutManager`我们可以轻松地实现这一功能。在设计快捷方式时,要注意兼容性、用户权限和最佳实践,以确保快捷方式的实用性和用户体验。

    android 快捷方式到桌面

    5. **九宫格菜单**:部分设备可能有九宫格菜单,用户也可以通过点击菜单中的“添加”或“添加快捷方式”,然后选择目标应用,快速将快捷方式添加到桌面。 对于特定功能的快捷方式,比如QQ中的联系人,操作会略有...

    Android中实现Launcher功能之添加快捷方式

    本文将深入探讨如何在Android中实现Launcher功能,特别是添加快捷方式的部分。 首先,我们需要理解Android快捷方式的工作原理。快捷方式是用户在主屏幕上创建的指向特定应用程序或操作的图标,它通过Intent对象来...

    android桌面应用程序

    在 Android 桌面应用程序中,Home 分析目录是非常重要的组件之一,负责管理桌面上的图标、快捷方式、widget 等元素。Home 分析目录的主要功能包括: 1. 桌面图标管理:Home 分析目录负责管理桌面上的图标,包括添加...

    解析Android应用启动后自动创建桌面快捷方式的实现方法

    总的来说,Android应用自动创建桌面快捷方式是通过发送一个特定的Broadcast Intent实现的,涉及到对`com.android.launcher.permission.INSTALL_SHORTCUT`权限的使用。同时,应考虑到用户体验,合理地控制创建快捷...

    android新建桌面快捷方式

    你需要获取ShortcutManager实例,并调用`addDynamicShortcuts()`或`addStaticShortcuts()`方法添加快捷方式。例如: ```java ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class); ...

    android shortcut桌面快捷方式demo

    本篇将深入探讨如何在Android应用中实现快捷方式的添加、删除以及查询其是否存在。 首先,我们需要了解Android的Shortcut API。自Android Nougat (API 25)开始,引入了Dynamic Shortcuts,允许开发者动态创建和更新...

Global site tag (gtag.js) - Google Analytics