android方法中添加 N,Android N 新功能 - 添加快速设定
Android N version 其中一个功能,就是允许三方app可以添加自己的快速设定,到系统的下拉设定中,方便用户快速打开关闭某些功能.
废话不多说,直接上代码来讲解.
创建一个class,继承自TileService,这个TileService是N SDK新加的,所以务必SDK更新到N version
public class TestTile extends TileService {
@Override
public void onStartListening() {
super.onStartListening();
}
@Override
public void onStopListening() {
super.onStopListening();
}
@Override
public void onClick() {
super.onClick();
}
}
这里的override方法之后会再详细介绍.
建完service后,需要在manifest中声明,这样才能被系统SystemUI query到
android:label="@string/tile_label"
android:icon="@drawable/ic_zen"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
从上面的声明中,其实已经比较明显,这个Tile要显示的名字,icon等都是在这里声明的,特别注意这里一定要加上对应的permission才行.
下来可以先看下实际效果,下拉后再Quick Setting中会有个Edit,点击后往下滑动,三方APP定义的QS tile就会都显示,可以通过拖拽放到常用设定中.
Screenshot_20160718-202234.png
有了显示后,还需要有对应的功能才有意义。一般来说,QS中的tile的功能就是某个功能开关,比如手电筒的开关等,因此这里通常需要实现的就是点击的相应,已经开关状态的显示。
先说点击,这个比较简单,就是override的TileService 的onClick() function. 可以是启动自己的activity等,根据APP需求来编写.
@Override
public void onClick() {
super.onClick();
Log.d("TEST","Launch onClick()")
}
那么怎么更新state呢?这里QS的定义会是两个状态,Tile.STATE_ACTIVE 和 Tile.STATE_INACTIVE, 而这两个状态的设定则是app自己结合你的功能来设定,然后再更新UI,方法基本上类似下面
@Override
public void onClick() {
super.onClick();
num++;
boolean enabled = num % 2 == 0;
Log.d("TEST","Run onClick function with enabled = " + enabled);
getQsTile().setState(enabled ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE);
getQsTile().updateTile();
}
另外要注意,这里的ACTIVE和INACTIVE其实就是对图做翻色的一个设定,我没有测试这里是否可以放置非白色的图,但是default都是这种白色的icon,然后反转成黑底的
Screenshot_20160718-210709.png
Screenshot_20160718-210714.png
07-18 21:03:10.437 8692 8692 D TEST : Run onClick function with enabled = f
alse
07-18 21:03:13.715 8692 8692 D TEST : Run onClick function with enabled = t
rue
07-18 21:03:14.941 8692 8692 D TEST : Run onClick function with enabled = f
alse
07-18 21:03:15.656 8692 8692 D TEST : Run onClick function with enabled = t
rue
07-18 21:03:21.745 8692 8692 D TEST : Run onClick function with enabled = f
alse
07-18 21:03:22.531 8692 8692 D TEST : Run onClick function with enabled = t
rue
07-18 21:05:07.896 8692 8692 D TEST : Run onClick function with enabled = f
alse
07-18 21:07:11.244 8692 8692 D TEST : Run onClick function with enabled = t
rue
原理的部分还没有仔细看过,如果有兴趣的同学可以一起讨论学习.
android方法中添加 N,Android N 新功能 - 添加快速设定相关推荐
- 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )
文章目录 一.Android 逆向中使用的 android.permission 权限 二.Android 系统中的 Linux 用户权限 一.Android 逆向中使用的 android.permi ...
- android图片浏览功能,怎么在Android应用中实现一个网页图片浏览功能
怎么在Android应用中实现一个网页图片浏览功能 发布时间:2020-12-05 17:28:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关怎么在Android应用中实现 ...
- 还可以这么玩:盘点iOS 11中Siri的12项新功能
本文讲的是 还可以这么玩:盘点iOS 11中Siri的12项新功能, iOS 11的首次亮相带来了一些变化,其中包括增强现实游戏和更好的iMessage体验,但或许操作系统在任何方面的改变都不如Sir ...
- 在Android studio的一个新建的Activity中添加Toolbar以及相应的功能添加
Toobar一般用在实现一个APP的很多页面的标题的时候会用到,实现的方法也有很多种. 注意:Toolbar需要在工程中引入appcompat-v7的兼容包,需要使用android.support.v ...
- android 唱歌打分源码,Android App中使用RatingBar实现星级打分功能的教程
RatingBar简单介绍RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键( ...
- android支付宝支付微信支付封装,如何在Android App中集成支付宝和微信支付功能
前言 本文主要介绍如何在 Android App 里集成支付宝和微信支付的功能,文中将实现的步骤一步步介绍的非常详细,对同样遇到这个问题的朋友相信会是一个很好的参考,下面话不多说了,来一起看看详细的介 ...
- android如何实现打分功能,Android App中使用RatingBar实现星级打分功能的教程
RatingBar简单介绍RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键( ...
- android phone win10下载,微软Your Phone新功能: 可在Win 10 PC 上运行 Android 应用程序...
今年 8 月,微软发布了一项 Your Phone 重大功能,可以在 Windows 10 PC 上运行 Android 应用程序.该功能主要通过 Your Phone 应用将 Android 应用投 ...
- Android 8.0正式发布 奥利奥新功能惊人
尽管 Android 刷版本号的步伐年年加快,但每年带给用户的惊喜从未减少.经历了四个开发者预览版的洗礼后,Android 8.0 终于在今天凌晨迎来了正式版发布. 如果你还不清楚 Android O ...
最新文章
- 7年半老程序员,被现实击垮……
- Android Gatekeeper流程深度解剖
- Python爬虫神器pyppeteer
- ajax 12301 原因小结
- stackoverflow_Stackoverflow的见解:投票最多的是Spring 4问题
- 哈工大人工智能研究院院长刘劼:AIoT 核心在“智”不在“联”,需云边端协同...
- LINQPad工具-linq、sql、IL优化和转换
- Mac下VirtualBox虚拟机Win7与主机共享文件夹
- 拒绝枯燥,有意思的 Loading 页面动效设计
- c 如何加函数锁linux,Linux下C语言中fcntl函数用法说明
- SQL对字符串进行排序
- MySQL 5.6, 5.7并行复制测试(二)(r12笔记第10天)
- 非要自己开发一个测试工具不可
- php黑名单,php IP黑名单
- 05【应用工具简介】PM 流程图,思维导图,原型图绘制?怎么绘制不被解雇?
- Python中如何输入一个整数实例
- Synonyms 中文近义词工具包 -- 支持文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等
- WPF 做的天干地支 乾坤八卦时钟表盘 可以设置24小时制
- linux改文件夹e45,linux 编辑文件时 E45: 'readonly' option is set (add ! to override) 隐藏属性 chattr lsattr...
- rk3588 驱动调试记录
热门文章
- zbb20170824 oracle expdp/impdp 导入导出数据
- 深入理解c#(第三版)(文摘)
- Linux下使用OTL操作mysql数据库
- PHP获取今天开始和结束的时间戳
- windows配置nginx实现负载均衡集群
- QQ音乐的各种相关API
- 在Linux下开发多语言软件(gettext解决方案)
- QT cannot open output file debug\OpencvTest.exe: Permission denied
- CF 19D Points 【线段树+平衡树】
- linux下apache和jboss集群和负载均衡