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 新功能 - 添加快速设定相关推荐

  1. 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

    文章目录 一.Android 逆向中使用的 android.permission 权限 二.Android 系统中的 Linux 用户权限 一.Android 逆向中使用的 android.permi ...

  2. android图片浏览功能,怎么在Android应用中实现一个网页图片浏览功能

    怎么在Android应用中实现一个网页图片浏览功能 发布时间:2020-12-05 17:28:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关怎么在Android应用中实现 ...

  3. 还可以这么玩:盘点iOS 11中Siri的12项新功能

    本文讲的是 还可以这么玩:盘点iOS 11中Siri的12项新功能, iOS 11的首次亮相带来了一些变化,其中包括增强现实游戏和更好的iMessage体验,但或许操作系统在任何方面的改变都不如Sir ...

  4. 在Android studio的一个新建的Activity中添加Toolbar以及相应的功能添加

    Toobar一般用在实现一个APP的很多页面的标题的时候会用到,实现的方法也有很多种. 注意:Toolbar需要在工程中引入appcompat-v7的兼容包,需要使用android.support.v ...

  5. android 唱歌打分源码,Android App中使用RatingBar实现星级打分功能的教程

    RatingBar简单介绍RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键( ...

  6. android支付宝支付微信支付封装,如何在Android App中集成支付宝和微信支付功能

    前言 本文主要介绍如何在 Android App 里集成支付宝和微信支付的功能,文中将实现的步骤一步步介绍的非常详细,对同样遇到这个问题的朋友相信会是一个很好的参考,下面话不多说了,来一起看看详细的介 ...

  7. android如何实现打分功能,Android App中使用RatingBar实现星级打分功能的教程

    RatingBar简单介绍RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键( ...

  8. android phone win10下载,微软Your Phone新功能: 可在Win 10 PC 上运行 Android 应用程序...

    今年 8 月,微软发布了一项 Your Phone 重大功能,可以在 Windows 10 PC 上运行 Android 应用程序.该功能主要通过 Your Phone 应用将 Android 应用投 ...

  9. Android 8.0正式发布 奥利奥新功能惊人

    尽管 Android 刷版本号的步伐年年加快,但每年带给用户的惊喜从未减少.经历了四个开发者预览版的洗礼后,Android 8.0 终于在今天凌晨迎来了正式版发布. 如果你还不清楚 Android O ...

最新文章

  1. CTF---Web入门第一题 what a fuck!这是什么鬼东西?
  2. 【长篇连载】桌面管理演义 第八回 电脑中毒很危险 告警隔离防传染
  3. 一条sql语句,要修改一个字段的俩个值,比如把字段sex中的男改为女,女改为男...
  4. 三种Target Encoding方式总结
  5. 队列的应用、栈的应用
  6. 【译】程序员都有的这 10 个坏习惯!
  7. 一个人动情之后的表现......
  8. 前端学习(2309):react之同级传值
  9. .net core高并发_高并发下的Node.js与负载均衡
  10. to_string作用
  11. 13、几点小结,unsigned long long
  12. Luogu1525 关押罪犯
  13. LwIP协议栈之ARP(Address Resolution Protocal)协议详解
  14. 天翼网关最新超级密码2020_5G 下体验阿里云盘后,我决定继续用天翼和度盘
  15. 偶像生于1964:马云、张朝阳、求伯君的激荡人生
  16. 计算机技术与软件专业技术资格哪个好考,计算机技术与软件专业技术资格好考吗?考试时间?...
  17. 概率论与数理统计学习笔记(5)——极大似然估计
  18. Failed to load C:\SDK\android-sdk-windows\build-tools\27.0.2\lib\dx.jar
  19. RGB color model
  20. GRUB4DOS(十二)适用于FAT32的分区引导扇区启动代码

热门文章

  1. Tomcat服务器的常用配置
  2. linux /etc/profile和/etc/bashrc
  3. C# .net中cookie值为中文时的乱码解决方法
  4. 使用coding、daocloud和docker打造markdown纯静态博客
  5. FMDatabase常见的几个操作
  6. iphone 字符串
  7. css overflow和border-radius一起用 解决圆角和滚动条一起用的问题
  8. 使用Navicat连接MySQL时出现2059报错的解决方法
  9. spring cloud gateway中解决第一次请求失败的问题
  10. 如何删除Cookie?