Android--创建快捷方式
需要权限:
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
调用方法:
ShortCut.create(this);
ShortCut代码如下:
public class ShortCut {
/**
* 是否存在快捷方式
* @param context
* @return
*/
private static boolean isAddShortCut(Context context) {
boolean isInstallShortcut = false;
final ContentResolver cr = context.getContentResolver();
int versionLevel = android.os.Build.VERSION.SDK_INT;
String AUTHORITY = "com.android.launcher2.settings";
// 2.2以上的系统的文件文件名字是不一样的
if (versionLevel >= 8) {
AUTHORITY = "com.android.launcher2.settings";
} else {
AUTHORITY = "com.android.launcher.settings";
}
final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY
+ "/favorites?notify=true");
Cursor c = cr.query(CONTENT_URI,
new String[] { "title", "iconResource" }, "title=?",
new String[] { context.getString(R.string.app_name) }, null);
if (c != null && c.getCount() > 0) {
isInstallShortcut = true;
}
return isInstallShortcut;
}
/**
* 添加快捷方式
* @param context
*/
private static void addShortCut(Context context) {
Intent shortcut = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
// 设置属性
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, context.getResources()
.getString(R.string.app_name));
ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(
context.getApplicationContext(), R.drawable.ic_launcher);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, iconRes);
// 是否允许重复创建
shortcut.putExtra("duplicate", false);
// 设置桌面快捷方式的图标
Parcelable icon = Intent.ShortcutIconResource.fromContext(context,
R.drawable.ic_launcher);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
// 点击快捷方式的操作
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClass(context, AppListActivity.class);
// 设置启动程序
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
// 广播通知桌面去创建
context.sendBroadcast(shortcut);
}
/**
* 外部调用 创建快捷方式
* @param context
*/
public static void create(Context context) {
if(context != null)
{
if(!isAddShortCut(context))
{
addShortCut(context);
}
}
}
Android--创建快捷方式的更多相关文章
- Android创建桌面快捷方式
在桌面上创建特定界面的快捷入口,icon和title根据请求参数命名.在网上收集的一些相关资 料,在使用intent发送广播的时候,一些型号的收集会有问题,如魅族MX,红米,以及华为,使用setCla ...
- Android中为APP创建快捷方式的原理(自己的理解)
我们首先来看Android中为APP创建快捷方式的原理: 从图上可以看出,Android大致分7步完成快捷方式的创建: 第一步:Android系统的launcher程序会调用它的pickShortcu ...
- (转)Android创建桌面快捷方式两种方法
[IT168技术]Android在桌面上生成快捷方式有两种情况,一种是直接在桌面直接生成;一种是长按桌面,在弹出的快捷菜单中生成. 谈谈在桌面上直接生成.个人觉得这个比较爽快,既然都是快捷方式了干嘛还 ...
- Android创建和删除桌面快捷方式
有同学方反馈创建快捷方式后,点击快捷方式后不能启动程序或者提示"未安装程序",貌似是新的rom在快捷方式这块做过修改(由于此文是11年5月所出,估计应该是2.0或2.1的rom), ...
- [Android Pro] 创建快捷方式,删除快捷方式,查询是否存在快捷方式
1: 创建快捷方式 需要权限: <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORT ...
- Android 主界面长按创建快捷方式
Android中创建快捷方式主要有两种方式.一是在代码中直接加入生成桌面快捷方式的代码:二是通过小部件加入; 这篇文章主要讲另外一种方法! 1.通过在AndroidManifest文件里为Activi ...
- Android添加快捷方式
private void addShortcutToDesktop() { Intent shortcut = new Intent("com.android.launcher.action ...
- Android添加快捷方式(Shortcut)到手机桌面
Android添加快捷方式(Short)到手机桌面 权限 要在手机桌面上添加快捷方式,首先需要在manifest中添加权限. <!-- 添加快捷方式 --> <uses-permis ...
- android桌面快捷方式跳转到指定activity
AndroidManifest.xml 应用主入口配置: <activity android:name="com.*.cust.contacts.MainActivity" ...
- Android创建桌面快捷图标
<!-- 添加快捷方式 --> <uses-permission android:name="com.android.launcher.permission.INSTALL ...
随机推荐
- 控制论模型&心流模型&波模型
1.控制论模型 这是对设定的目标,通过多次输入和输出,反馈调节,最终达成目标的方法.广泛运用于自然科学与社会科学中.反馈的周期长短决定了调节精度的大小以及达到目标的速度.反馈结果与目标背离的立即纠正, ...
- 详解匿名内部类 ,形参为什么要用final
一.使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部 ...
- PhpStorm 设置自动FTP同步文件
1.添加一个FTP服务器 ① 首先在这里打开添加FTP的页面,步骤,工具栏 -> Tools -> Deployment -> Configuration . ②添加服务器 ...
- HttpClient介绍和简单使用流程
HttpClient SpringCloud中服务和服务之间的调用全部是使用HttpClient,还有前面使用SolrJ中就封装了HttpClient,在调用SolrTemplate的saveBean ...
- ICEM-双管
原视频下载地址:http://yunpan.cn/cLHCm7Uejw4eG 访问密码 b8a1
- [BUAA软工]Alpha阶段事后分析
设想和目标 虽然我们是从零开始的一个自定义项目,但语音Coding助手从一开始的设计与目标就很明确:加入语音接口使其能在shell端实现命令语音实现以及编辑运行脚本,设计前端编辑器并将后端shell与 ...
- SSM项目实战 之 EasyUI
目录 EasyUI 简介 概述 使用EasyUI panel组件 简介 示例 JS形式及属性介绍 panel事件与方法 Window组件 概述 使用 行为 dialog 概述 使用 tabs组件 概述 ...
- 第09组 Alpha冲刺(1/4)
队名:软工9组 组长博客: https://www.cnblogs.com/cmlei/ 作业博客: 组员进度 ● 组员一(组长) 陈明磊 ○过去两天完成了哪些任务 ●文字/口头描述 初步 ...
- TOMCAT到底能 承受多少并发,并发量计算你方法
TOMCAT 可以稳定支持的最大并发用户数 https://www.jianshu.com/p/d306826aef7a tomcat并发数优化maxThreads.acceptCount(最 ...
- [转]ProxmoxVE 干掉 VMware
很久没有写这种通俗易懂的文章了,不是我愤世嫉俗,而是因为确实太为那些花大价钱购买VMware的冤大头鸣不平. 确实VMware在虚拟化市场占有率非常高,技术也非常成熟,用户使用起来很方便,但是如果你是 ...