`
yq135314
  • 浏览: 253188 次
  • 性别: 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判断是否获取到桌面快捷方式权限

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

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

    安卓添加桌面快捷方式

    类似QQ添加桌面快捷方式联系人,也可以自定义桌面图标,新手值得看看

    android 快捷方式的权限判断。

    里面的工具类是 通过 各自的实现来判断 华为,小米 oppo vivi等的应用是否 拥有快捷方式 的权限,如果没有的话,则需要去手动授权。

    Android实现向Launcher添加快捷方式的方法

    当我们想把添加快捷方式的Activity添加到这一列表时,只需要在这个Activity注册时添加一个Action为android.intent.action.CREATE_SHORTCUT的IntentFilter就可以了。 ShortCutAction类: packag

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

    源码参考,欢迎下载

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

    * 判断桌面是否已添加快捷方式 * * @param cx * @param titleName * 快捷方式名称 * @return */ public static boolean hasShortcut(Context cx) { boolean result = false; // 获取当前应用名称 String title = ...

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

    要不怎么说Android特别开放呢,在Android开发中,只要发送一个广播,就可以实现这种需求了。 废话不多说,以下是封装好的一段代码。 代码如下:public class ShortcutUtil { public static void createShortCut...

    Android通过应用程序创建快捷方式的方法

    本文实例讲述了Android通过应用程序创建快捷方式的方法。...二:为应用程序的组件注册某一个符合特定条件的IntentFilter,然后可以直接在Launcher的桌面添加启动该组件的快捷方式。 下面模拟在应用程

    android 为应用程序创建桌面快捷方式技巧分享

    手机装的软件过多,找起来很不方便,所以在主页面有一个快捷方式的话会很不错的,本文将介绍如何实现,需要了解跟多的朋友可以参考下

    Android的Launcher启动器中添加快捷方式及小部件实例

    今天先给大家分享下Launcher如何实现添加快捷方式(Shortcut) ,后续会慢慢增加其他方面的功能,帮助大家“一叶而知秋”。 具体来说,Launcher中的快捷方式有两种类型: 1 、”伪”快捷方式 —— 应用程序类型 2 、”

    疯狂Android讲义源码

     14.3.2 向Launcher添加快捷方式 534  14.4 管理桌面小控件 535  14.5 实时文件夹(LiveFolder) 539  14.5.1 使用实时文件夹显示  ContentProvider的数据 540  14.6 本章小结 545  第15章 传感器应用开发 ...

    91桌面下载

    全新设计完美贴合Android4.0 UI风格,支持桌面主题应用及个性美化DIY,极致的操作体验,人性化的功能交互,简单好用,快速稳定,做您最贴心的手机管家! 【特色功能】 1、丰富缤纷的个性主题任您下载,每日更新让...

    安卓手机-TSF桌面

    您可以很自由地把单个或多个应用从应用页面中创建快捷方式并拖拽到任何一个自定义页面,或在自定义页面中把各种控件自由的进行页面切换、角度旋转等操作,从而布局属于您的个性化页面. 侧面栏提供了各种TSF SHELL 3D...

    91手机桌面

    全新设计完美贴合Android4.0 UI风格,支持桌面主题应用及个性美化DIY,极致的操作体验,人性化的功能交互,简单好用,快速稳定,做您最贴心的手机管家! 【特色功能】 1、丰富缤纷的个性主题任您下载,每日更新让...

    疯狂Android讲义.part2

    14.3.2 向Launcher添加快捷方式 534 14.4 管理桌面小控件 535 14.5 实时文件夹(LiveFolder) 539 14.5.1 使用实时文件夹显示 ContentProvider的数据 540 14.6 本章小结 545 第15章 传感器应用开发 546 15.1 利用...

    疯狂Android讲义.part1

    14.3.2 向Launcher添加快捷方式 534 14.4 管理桌面小控件 535 14.5 实时文件夹(LiveFolder) 539 14.5.1 使用实时文件夹显示 ContentProvider的数据 540 14.6 本章小结 545 第15章 传感器应用开发 546 15.1 利用...

    百度云系统 v1.1(百度云OS Android)

    自主设置桌面外观 可添加各类应用 小部件 快捷方式;换主题 换壁纸 换字体 随心所欲拼桌面 够FUN够潮 特有的百变桌面 应用隐藏 你能想要的功能 TA都能满足 炫酷无比的百变桌面 "&gt;软件名称:百度云OS(Android) 软件...

Global site tag (gtag.js) - Google Analytics