安卓长按应用图标弹出快捷方式(shortcut)
一、静态方式
1.1、在res/xml/目录下创建一个新的xml文件,这里我们命名为:shortcuts.xml。
代码:
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:shortcutId="static1"
android:enabled="false"
android:icon="@drawable/launch_zhenjiang"
android:shortcutDisabledMessage="@string/nav_btn_login"
android:shortcutLongLabel="@string/nav_btn_login"
android:shortcutShortLabel="@string/nav_btn_login">
<intent
android:action="android.intent.action.VIEW"
android:targetClass="com.secondui.activity.TestActivity"
android:targetPackage="com.zjapp" />
<categories android:name="android.shortcut.conversation"/>
</shortcut>
<shortcut
android:shortcutId="static2"
android:enabled="true"
android:icon="@drawable/launch_zhenjiang"
android:shortcutDisabledMessage="@string/nav_btn_login"
android:shortcutLongLabel="@string/nav_btn_login"
android:shortcutShortLabel="@string/nav_btn_login">
<intent
android:action="android.intent.action.VIEW"
android:targetClass="com.secondui.activity.LoginActivity"
android:targetPackage="com.zjapp" />
<categories android:name="android.shortcut.conversation"/>
</shortcut>
</shortcuts>
代码说明:
1、shortcutId 一个唯一的id,不能重复。
2、enabled 表示这个shortcut是否可用。不可用时,就不会显示这个快捷方式。
3、shortcutShortLabel 这里是配置的短名称。如果长名称显示不下, 就显示短名称。这里必须使用@string的方式,不能直接写字符串。
4、shortcutLongLabel 这里是配置的长名称。launcher会优先选择长名称显示。这里必须使用@string的方式,不能直接写字符串。
5、shortcutDisabledMessage 这个配置是在我们选择一个不可用的shortcut时给用户的一个提示。没有意义,因为不可用时就不显示这个快捷方式。这里必须使用@string的方式,不能直接写字符串。
6、intent 这里表示我们点击shortcut时要做什么。targetPackage是你的应用的包名;targetClass是我们要跳转的目标类;这里要注意的是android:action一定要配置, 否则会崩溃。
7、categories 这个东西目前位置官方只给提供了android.shortcut.conversation。
1.2、在AndroidManifest.xml中启动的activity中添加meta-data。
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
特别说明:只有在具有如下配置的activity中才能添加meta-data来注册快捷方式。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
原文地址:https://www.cnblogs.com/qynprime/p/15118282.html
- [喵咪Redis]Redis安装与介绍
- [喵咪Liunx(4)Monit进程监控
- 【第四期】GC专题
- ML中相似性度量和距离的计算&Python实现
- ASP.NET MVC Model元数据及其定制: Model元数据的定制
- 小白也可以操作的手机TensorFlow教程:Android版和iOS版
- PhalApi-PHPExcel基于PhalApi的PHPExcel拓展
- [喵咪软件推荐(2)]全球服务器测速工具speedtest-cli
- 使用Keras创建一个卷积神经网络模型,可对手写数字进行识别
- 新生代的垃圾回收:Copy GC之基本原理
- [喵咪软件推荐(1)]全球国家信息库
- 一文教你在Python中打造你自己专属的面部识别系统
- [喵咪Liunx(6)]Nginx日志分析工具goaccess
- 用Atomic实现锁
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 微信企业转账之入口类分装php代码
- 多个Laravel项目怎么共用migrations详解
- layui数据表格自定义每页条数limit设置
- Laravel 集成微信用户登录和绑定的实现
- PHP实现微信对账单处理
- Laravel5.1框架路由分组用法实例分析
- PHP的HTTP客户端Guzzle简单使用方法分析
- laravel 框架实现无限级分类的方法示例
- 详解Laravel5.6通过路由进行API版本控制的简单方法
- php+layui数据表格实现数据分页渲染代码
- thinkPHP框架乐观锁和悲观锁实例分析
- PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
- laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
- Laravel框架实现即点即改功能的方法分析
- PHP使用PDO实现mysql防注入功能详解