Shortcuts初体验

好了, 在我们开始撸码之前, 还是来看看这个新特性有多赞, 新系统中好多google家的APP都集成了这项功能, 所以, 我们先挑个APP来体验一下.

长按会发现有个快捷打开,我们这次要实现的就是这个。这个功能还是很实用的, 有了它, 我们就可以直接打开短信应用给某人发短信啦~~ 下面我们就开始学习一下这个新的Shortcuts在开发中如何使用!
静态配置shortcut

什么是Static Shortcuts? 我的理解就是利用xml写死的配置, 想想BroadcastReceiver可以静态注册也可以利用java代码动态注册, 这里也是一样的.
那静态注册该如何做呢? 首先, 我们需要在res/xml目录下创建一个新的xml文件, 这里我们命名为shortcuts.xml.

<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"><shortcutandroid:shortcutId="settings"android:enabled="true"android:icon="@drawable/ic_launcher_background"android:shortcutShortLabel="@string/settings_short_name"android:shortcutLongLabel="@string/settings_long_name"android:shortcutDisabledMessage="@string/settings_disable_msg"><intentandroid:action="android.intent.action.VIEW"android:targetPackage="com.example.short1"android:targetClass="com.example.short1.SettingsActivity" /><categories android:name="android.shortcut.conversation"/></shortcut>
</shortcuts>

首先一个shortcuts标签, 然后是一个shortcut, 到这里我们大概可以猜测到这里可以注册多个shortcut, shortcut标签有很多属性, 我们来一个个的了解下

1.shortcutId, 不用多说, 这肯定是一个唯一的id
2.enabled, 表示这个shortcut是否可用
3.shortcutShortLabel, 这里是配置的短名称, 下面还会有长名称, 如果长名称显示不下, 就显示短名称
4.shortcutLongLabel, 这里是配置的长名称, launcher会优先选择长名称显示
5.shortcutDisabledMessage, 这个配置是在我们选择一个不可用的shortcut时给用户的一个提示
6.intent, 这里表示我们点击shortcut时要干嘛, targetPackage是指定一个目标应用的包名, targetClass是我们要跳转的目标类, 这里要注意的是android:action一定要配置, 否则会崩溃
7.categories, 这个东西目前位置官方只给提供了android.shortcut.conversation

注意要在values下创建一个string,我之前就是没创建这个,一直报错

ok, 上面的几行代码, 我们一个static shortcuts就完成了, 那如何使用呢? 是在manifest中配置activity的地方使用, 而且这个activity是有要求的.
能配置shortcuts的activity必须要有action是android.intent.action.MAIN和category是android.intent.category.LAUNCHER!

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.short1"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".SettingsActivity"></activity><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><meta-dataandroid:name="android.app.shortcuts"android:resource="@xml/shortcuts"/></activity></application></manifest>

最终效果

注意,shortcut是Android 7.1之后才出来的,所以版本大家要自己控制好。
动态的配置方法我以后找机会写。。。。。

安卓学习日记——Shortcut相关推荐

  1. 安卓学习日记:初识Android Studio · java环境配置和AS安装

    工欲善其事,必先利其器.要进行安卓开发,必须要有一款上手的开发利器.查阅了相关资料后,了解到,现在主流的安卓开发工具是: 1. Eclipse + Android SDK 2. Android Stu ...

  2. 安卓学习日记——画布与绘制

    先提一下Draw 9-patch 老版本的Android Studio是在SDK目录下的Tools里有个draw9patch 新版Android Studio是可以在AS里直接创建的(一开始没在目录下 ...

  3. 安卓学习日记(一):了解安卓架构(linux内核层、系统运行库层、应用框架层、应用层)

    首先为了理解安卓系统是怎么工作的,就先来看一下android的系统架构,其架构大至可以分为四层:linux内核层.系统运行库层.应用框架层和应用层,那就先说说这几层. 1.linux内核层: Andr ...

  4. 安卓学习日记——在线支付

    Pingxx 官网:https://www.pingxx.com/ 服务器端和客户端的配置参考官方的文档 客户端代码 package com.example.pingxx;import android ...

  5. 安卓学习日记——Vitamio框架

    Vitamio中文名称"维他蜜",是一款Android与IOS平台上的全能多媒体开发框架,全面支持硬件解码与GPU渲染.Vitamio能够流程播放720P甚至1080P高清MKV, ...

  6. 安卓学习日记——广告

    万普积分墙 去万普官网,注册账号,登录(www.waps.cn) 下载SKD,导包 添加权限 <uses-permission android:name="android.permis ...

  7. 安卓学习日记——媒体播放

    简介 Android的多媒体框架包括支持播放多种常见的媒体类型,使您可以轻松地把音频.视频和图像集成到你的应用.你可以播放音频或视频媒体文件,这些文件是存储在你的应用程序的资源文件中的.应用程序的资源 ...

  8. 安卓学习日记——APP共享内容

    分享简单的文本内容 public void sharedSimpleContentClick(View v){Intent intent=new Intent();intent.setAction(I ...

  9. 安卓学习日记——补间动画与帧动画

    Animation介绍 Android提供了几种动画类型:View Animation.Drawable Animation.Property Animation.View Animation相当简单 ...

最新文章

  1. 中文论文万能句型_SCI 论文写作万能句型汇总(很实用)
  2. 【笔记】Hexo+Github博客网站搭建,初试环境搭建及Matery主题配置感受
  3. C#学习之unsafe
  4. ffmpeg 新老接口问题及对照集锦
  5. ListView和RecycleView的性能比对
  6. android 网络gif_Android SurfaceView实现GIF动画架包,播放GIF动画
  7. python画图颜色代码_Python-使用matplotlib创建自己的颜色图并绘制颜色比例
  8. CSDN极客头条使用指南
  9. Spring-BeanPostProcessor的执行顺序
  10. VS code中文版安装教程(超级详细)
  11. t检验的p值对照表_第十讲 R-两独立样本t检验
  12. 心电信号越界怎么回事_心电信号产生
  13. day42.自动关机小程序
  14. C++游戏开发入门制作:经典游戏拳皇97
  15. 均值已知检验方差_21.(6)AB test 假设检验例题实操
  16. Excel:IF条件类函数
  17. 笔记本+显示器常用设置总结
  18. IOS界面元素四栏(状态栏、导航栏、工具栏、TAB栏)设计规范
  19. Docker学习笔记 — Swarm搭建Docker集群
  20. 计算机控制系统2017模拟题,计算机控制系统模拟试题.doc

热门文章

  1. Lidar_imu自动标定源码阅读(二)——calibration部分
  2. mysql mma 原理_Android中m、mm、mmm、mma、mmma的区别
  3. Linux下访问默认80端口 映射到8080端口
  4. 配上新的pip源再来安装pytorch有如神助
  5. 关于LAMMPS能量最小化
  6. 汇总解决idea出现import包时报错Java:程序包xxxx不存在,但包确实存在的问题
  7. 使用背景优先级的测地显著性检测(Geodesic Saliency Using Background Priors)
  8. get请求获取不到参数
  9. 最新全国省市(简称) json文件
  10. matlab画简单曲线,并进行标注、图例、加网格,等操作