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. 封神召唤师显示服务器爆满,封神召唤师总是显示无法连接网络
  2. pybind传输list
  3. NET许可证及License
  4. js如何同时打开多个信息窗口 高德地图_高德地图显示单个窗体和显示多个窗体的方法...
  5. 远程接入-天翼5系统让ERP穿越时空!
  6. zephir mysql_用Zephir编写php扩展库以及生成文档、IDE提示
  7. 运行keras出现 FutureWarning: Passing (type, 1) or ‘1type‘ as a synonym of type is deprecated解决办法
  8. Linux内核网络数据包处理流程
  9. 帮一个朋友征集算法代码,大家都来开动你的脑袋发挥你的智慧参与吧
  10. matlab 三维转二维,求助,二维图像如何绕轴旋转成为三维图像
  11. php+jquery+ajax+json的一个最简单实例
  12. Spring集成Quartz定时任务框架介绍和Cron表达式详解
  13. AxureUX 复制Iconfont图标到Axure
  14. 天之涯地之角,raid信息丢了怎么找—记磁盘阵列数据恢复过程
  15. 竖排文字的3种设计方法
  16. 八、JUC强大的辅助类
  17. 青云科技上市:云计算企业的另一种最优解
  18. 在线ASCII转换工具
  19. 什么是 “VLAN” ?
  20. ENVI 5.1设置影像背景值透明显示

热门文章

  1. 用Python调用OpenAI API进行文本创作
  2. 程序员微信名昵称_数据分析告诉你,微信里好友们的昵称,也是一门很深的学问...
  3. shell if/then/elif/else/fi
  4. shell获取当前系统时间
  5. 对于interrupt,interrupted 和 isInterrupted的一些理解
  6. linux(4)进程控制
  7. 51单片机-定时器中断
  8. debian最小化安装
  9. 【论文速读】自动解题+认知推理+常识发现
  10. EXCEL表格-系统时间及进度自动记录工具制作