Android程序开发之手机APP创建桌面快捷方式
作者:Jusenr/荣雪-rongsnow 发布时间:2023-04-01 06:55:49
标签:app,桌面,快捷方式
预览效果图:
需要权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
配置文件:AndroidManifest.xml
<activity
android:name="com.myself.news.activity.GuideActivity"
android:label="@string/title_activity_guide" >
<intent-filter>
<action android:name="com.myself.news.ACTION_HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
在应用的闪屏页面Activity的 oncreate方法调用 installShortcut();
代码:
// 创建快捷方式
// com.android.launcher.permission.INSTALL_SHORTCUT
private void installShortcut() {
// 判断有没有创建过快捷方式
boolean isCreated = SharedPreferencesUtils.getBoolean(this,
GlobalConstantsUtils.PREF_IS_SHORTCUT_INTALLED, false);
// 判断是否已经创建过
if (!isCreated) {
// 发广播
Intent intent = new Intent();
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
// 图标
// 根据资源文件id生成Bitmap对象
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, BitmapFactory
.decodeResource(getResources(), R.drawable.ic_launcher));
// 名称
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "手机安全卫士");
// 动作
Intent actionIntent = new Intent();
// 跳到主页面
actionIntent.setAction(GlobalConstantsUtils.ACTION_HOME);
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, actionIntent);
sendBroadcast(intent);
// 标记已经创建过快捷方式,下次不再创建
SharedPreferencesUtils.setBoolean(this,
GlobalConstantsUtils.PREF_IS_SHORTCUT_INTALLED, true);
}
}
常量工具类GlobalConstantsUtils:
public static final String PREF_IS_SHORTCUT_INTALLED = "is_shortcut_intalled";// 是否已经创建快捷方式
public static final String ACTION_HOME = "com.myself.news.ACTION_HOME";// 跳转到主页面的ACTION


猜你喜欢
- java API中提供了一个基于指针操作实现对文件随机访问操作的类,该类就是RandomAccessFile类,该类不同于其他很多基于流方式
- mybatis group by substr传参报错报异常### Cause: java.sql.SQLSyntaxErrorExcept
- 首先引入jar包:<dependency> <groupId>com.alibaba</grou
- 实现形式elevationMaterial Design提供了View的阴影效果设置。主要由两个属性决定:elevation和transla
- 对于很多开发人员来说,炫酷的UI效果是最吸引他们注意力的,很多人也因为这些炫酷的效果而去学习一些比较知名的UI库。而做出炫酷效果的前提是你必
- 代理对象的生成方法是:Proxy.newProxyInstance(...) ,进入这个方法内部,一步一步往下走会发现会调用ProxyGen
- 根据不同系统动态获取换行符和盘分割符1、获取盘分割符File.separator2、获取换行符windows系统为\r\n,Linux系统为
- Mybatis的Dao层实现传统开发方式1、编写UserDao接口public interface UserMapper {public L
- 本文讲述了使用Qt5.3.0开发Android应用的方法,由于官方资料较少,此处记录开发过程遇到的问题及解决方法。具体步骤如下:1.Andr
- 了解了inbound事件的传播过程, 对于学习outbound事件传输的流程, 也不会太困难outbound事件传输流程在我们业务代码中,
- 前言dataGridView是常用的表格控件,实现分页的方式也有很多种,例如直接使用sql语言,配合存储方式,直接读取某一页的内容,大家如果
- 线程池线程池全称为托管线程池,线程池受 .NET 通用语言运行时(CLR)管理,线程的生命周期由 CLR 处理,因此我们可以专注于实现任务,
- C# 结构体在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。定义
- 开门见山 项目运行的环境里面已经有该项目的所有代码依赖,所以项目的代码只要将自己的代码打入进去就能提交到环境中运行了。但是不好的地方就是项
- 一、界面部分:首先,打开visual studio新建项目;然后使用“工具箱”添加控件:分别添加button,datagridview,te
- 安装java的运行环境IDEA一 找到并下载IDEA百度IDEA找到官网,往下翻找到Java并点击找到 并下载IDEA右边为开源的免费版本,
- 这篇文章主要介绍了MyBatis执行Sql的流程实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 本文实例讲述了Spring实战之清除缓存操作。分享给大家供大家参考,具体如下:一 配置文件<?xml version="1.
- 前言目前主流的锁有两种,一种是synchronized,另一种就是ReentrantLock,JDK优化到现在目前为止synchronize
- 需求:request的content-type为applciation/json,进入controller之前需要把body中的参数取出来做