Android 7.1 快捷方式 Shortcuts
转载请注明出处:王亟亟的大牛之路
前些天就看到相关内容了,但是最近吸毒比较深(wow),所以没有紧跟潮流,今天补一篇。
先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android [408 star]
看下效果:
肉眼看就是多了一排列表,是一些可点击的按钮,可定制一些常用的方便用户操作的快捷键。
理论知识翻译自官网,有基础好的同学可以直接看:https://developer.android.com/preview/shortcuts.html
啰里八嗦的文本介绍就不提了,说下怎么用合一些规范
他有2种加载方式
1.静态加载
2.动态加载
静态的方式可以兼容低版本,动态的暂时只支持7.1
字面就很好理解,静态的就是事先编辑好展示ui,跳转逻辑等等。
动态就是可以临时调用。
Static Shortcuts
在AndroidManifest.xml文件,首页activity的节点里的</intent-filter>下添加
<meta-data android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
shortcuts 其实就是我们静态编辑的内容,类似于预设Menu的概念
加完之后就是编辑shortcuts这个xml了,他要在 res/xml/shortcuts.xml 这个位置
例子中的文件清单如下
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:shortcutId="shortcut1"
android:enabled="true"
android:icon="@drawable/happy"
android:shortcutShortLabel="@string/one_text"
android:shortcutLongLabel="@string/one_long"
android:shortcutDisabledMessage="@string/one_disabled">
<intent
android:action="one"
android:targetPackage="demo.wjj.shortcutsdemo"
android:targetClass="demo.wjj.shortcutsdemo.MainActivity" />
</shortcut>
<shortcut
android:shortcutId="shortcut2"
android:enabled="false"
android:icon="@drawable/woman"
android:shortcutShortLabel="@string/two"
android:shortcutLongLabel="@string/two_long"
android:shortcutDisabledMessage="@string/two_disabled">
<intent
android:action="two"
android:targetPackage="demo.wjj.shortcutsdemo"
android:targetClass="demo.wjj.shortcutsdemo.MainActivity" />
</shortcut>
<shortcut
android:shortcutId="shortcut3"
android:enabled="true"
android:icon="@drawable/angry"
android:shortcutShortLabel="@string/three"
android:shortcutLongLabel="@string/three_long"
android:shortcutDisabledMessage="@string/three_disabled">
<intent
android:action="three"
android:targetPackage="demo.wjj.shortcutsdemo"
android:targetClass="demo.wjj.shortcutsdemo.MainActivity" />
</shortcut>
</shortcuts>
自行设置包名,类名,icon,描述文字等。
action对应的就是你点完快捷键回到activity时作判断的”key”
例子里第二个”item”没显示出来也就是因为android:enabled设置了false
其他的你只要在业务界面 getIntent().getActiob()就行了,so easy
Dynamic Shortcuts
动态的加载方式就相对麻烦一点,但是代码更活,官方提到的常用方法如下
setDynamicShortcuts(List) 重新设置动态快捷方式的列表。
addDynamicShortcuts(List) 添加到已存在的快捷方式列表。
updateShortcuts(List) 更新列表。
removeDynamicShortcuts(List) 移除快捷方式。
removeAllDynamicShortcuts() 移除全部快捷方式。
然后他举了个跳转网页的例子
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "id1")
.setShortLabel("Web site")
.setLongLabel("Open the web site")
.setIcon(Icon.createWithResource(context, R.drawable.icon_website))
.setIntent(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.mysite.example.com/")))
.build();
shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
然后就是一堆规范啊,要求啊,设计的,这边不做详细解释,直接简单明了的概括下
按照快捷键设计指南 传送门:https://material.google.com/style/icons.html#icons-launcher-shortcut-icons
只发布四个不同的快捷键:最多可以发5个,但是太长的话很丑,所以最多就放4个item
极限快捷描述长度:字数不要太多,长了也放不下外加占地方,尽量精简,如果可能的话,限制快捷方式的“简短描述”的长度为10个字符,并限制“长说明”的长度为25个字符。
维持快捷和行动使用历史:对于您创建的每个快捷方式,可以考虑在其中一个用户可以在应用程序内直接完成相同的任务的不同方法。
更新快捷方式,只有当它们的含义被保留
动态快捷键备份过程中不保留和恢复:动态快捷键不保留在设备经历了备份和恢复操作。
——————-我是华丽的分割线——————–
以下内容不看,demo跑了也看不到效果!!!!
其实这些都还好,慢慢倒持研究下就好,但是世界更新的太快,国人还在 安卓 4 5间徘徊,本宝宝没有7.1啊怎么跑?
在各方咨询后找到了一个兼容桌面,可以还原模拟谷歌桌面哦。
在不自定义快捷键的情况下,它自带会有一个快捷键
官网地址:http://www.apkmirror.com/apk/teslacoil-software/nova-launcher/
源码地址:https://github.com/ddwhan0123/BlogSample/tree/master/ShortcutsDemo
下载地址:https://github.com/ddwhan0123/BlogSample/blob/master/ShortcutsDemo/ShortcutsDemo.zip?raw=true
相关资料:http://www.androidcentral.com/how-use-app-shortcuts-android-71-google-pixel
发完后被吐槽后想起来,其实官方有sample….瞬间石化,但是写都写了,补个传送门吧https://developer.android.com/samples/AppShortcuts/project.html
对了,桌面那个谢谢 @烧饼
Android 7.1 快捷方式 Shortcuts的更多相关文章
- Android 7.1 - App Shortcuts
Android 7.1 - App Shortcuts 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Shortcuts 文中如有纰漏,欢迎大家留言 ...
- Android 7.1 App Shortcuts使用
Android 7.1 App Shortcuts使用 Android 7.1已经发了预览版, 这里是API Overview: API overview. 其中App Shortcuts是新提供的一 ...
- Android 桌面生成快捷方式
Android生成桌面快捷方式的几种方法: //------------以下为动态替换桌面应用Icon的一种解决方案------------------- // 1.获取本地目录图片的Bitmap ; ...
- (转)Android创建桌面快捷方式两种方法
[IT168技术]Android在桌面上生成快捷方式有两种情况,一种是直接在桌面直接生成;一种是长按桌面,在弹出的快捷菜单中生成. 谈谈在桌面上直接生成.个人觉得这个比较爽快,既然都是快捷方式了干嘛还 ...
- android 添加桌面快捷方式
.在桌面创建快捷方式方法: 方法一:通过长按某一个应用程序的图标在桌面上创建启动该应用程序的快捷方式. 这个方法安装完程序都用户都能实现. 方法二:在应用程序中构建一个Intent,然后以Broadc ...
- Android 添加桌面快捷方式操作
/** * 为程序创建桌面快捷方式 */ private void addShortcut(){ Intent shortcut = new Intent(“com.android.launcher. ...
- Android -- 创建桌面快捷方式
代码 /** * * 返回添加到桌 ...
- Android创建桌面快捷方式
在桌面上创建特定界面的快捷入口,icon和title根据请求参数命名.在网上收集的一些相关资 料,在使用intent发送广播的时候,一些型号的收集会有问题,如魅族MX,红米,以及华为,使用setCla ...
- Android添加桌面快捷方式的简单实现
核心代码如下: Button bn = (Button) findViewById(R.id.bn); // 为按钮的单击事件添加监听器 bn.setOnClickListener(new OnCli ...
随机推荐
- Rsync文件同步机备份工具使用
一,Rsync简介 Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步的优秀工具.适用于多种操作平台. 全称是Remote synchronization 具有可使本地和远 ...
- CodeForces 651 A Joysticks
A. Joysticks time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- CH5302 金字塔【区间DP】
5302 金字塔 0x50「动态规划」例题 描述 虽然探索金字塔是极其老套的剧情,但是有一队探险家还是到了某金字塔脚下.经过多年的研究,科学家对这座金字塔的内部结构已经有所了解.首先,金字塔由若干房间 ...
- RabbitMq入门与基本使用
这两天工作项目中用到了rabbitmq,顺便学习了一下. RabbitMq主要的使用模式有三种:工作队列,发布订阅和RPC远程调用. 1.工作队列 生产者: using System; using R ...
- Storm-源码分析-EventManager (backtype.storm.event)
Protocol and DataType 大体结构, 定义protocol EventManager, 其实就是定义interface 函数event-manager, 主要做2件事 1. 启动ev ...
- QT in VS 多语言实现(中英文切换,每个步骤都有截图,只有UTF8才能让Qt语言家正确读取。先qApp->removeTranslator,然后installTranslator,每个类都要写上槽函数RetranslateUI)
最近项目需要软件具有中英文双语切换功能,而QT又自带此功能,现将实现方式记录下来. 说到中英文切换,少不了要了解QT的内部编码方式.在此就不详述QT编码方式了,具体可参考 彻底弄懂Qt的编码.只需要记 ...
- excel判断单元格包含指定内容的函数用=IF(COUNTIF(A1,"*内容*"),"0","1")
前面我们聊过怎样将Excel包含某字符的单元格填充颜色,这边我们用另外一种方法来实现:excel判断单元格包含指定内容的函数 选中需要显示结果的单元格,假设我们要判断第一行第一列的单元格A1是否含有“ ...
- C#线程池ThreadPool
线程池可以看做容纳线程的容器: 一个应用程序最多只能有一个线程池: 设置线程数量ThreadPool.SetMaxThreads(initDownCardThreadPool, maxDownCard ...
- js如何转义和反转义html特殊字符
“<”如何反转义为“<”,“>”如何反转义为“>”,下面就介绍如何用js来实现这种类似的操作. //HTML转义 function HTMLEncode(html) { var ...
- PAT 1136 A Delayed Palindrome[简单]
1136 A Delayed Palindrome (20 分) Consider a positive integer N written in standard notation with k+1 ...