android通过代码设置铃声_我想在国产安卓系统,用上这些超好用的原生 Android 功能...
![](http://p02.5ceimg.com/content/4d5a16d2-8612-eb11-8da9-e4434bdf6706.jpeg)
![](http://p01.5ceimg.com/content/505a16d2-8612-eb11-8da9-e4434bdf6706.png)
▍更方便的音量调节方式
媒体、通话、闹铃、通知……我们对移动设备的音量调节需求丝毫不输电脑,但早年不少学习、模仿 iOS 的定制 UI 在音量调节这件事情上也基本照抄,音量调节功能在近两年才得到足够的重视。 而在这一点上,原生 Android 的做法尤其值得借鉴。 一方面,当你按下音量调节键时,默认调节的音量就是当前正在播放的音量。 如果你正在刷 YouTube,此时调节的应该是媒体音量;如果你的闹钟响了,此时调节的应该是闹钟音量;如果有人给你打电话,此时调节的应该是铃声音量……在原生 Android 上我们几乎不会遇到在错的时间点开错的视频、按下音量减却发现调节的是铃声音量而不是媒体播放音量的尴尬。 此外 Android 系统还会根据当前的设备连接状态进一步做出决定,当手机接入了多个蓝牙设备时,按下音量键优先调节的一定是正在播放而非闲置不用的那个蓝牙设备的播放音量。 方便快速的音量调节功能 另一方面,基于上面提到的设置面板 API,Android 10 还进一步引入了音量调节扩展面板。调节音量时点击控制条下方的设置按钮即可展开扩展面板,这个面板可以被看作是「系统设置 > 声音」界面的「微缩版」,允许我们直接对各类音频输出的音量大小进行单独调节。 最后,针对上面提到的多个音频播放设备连接的情况,我们也可以直接在这个扩展面板中自由切换用于音频输出的设备。
▍更懂使用场景的屏幕旋转
Android 9 Pie 发布的同时,Android 用户所熟悉的「三大金刚」被返回和同时拥有主屏(Home)、最近任务概览(Recents)两种功能的「小药丸」所取代,但彼时屏幕底部的导航栏按键区域依然存在,Google 于是灵机一动,将最近任务概览按钮留下来的空位留给了一个新功能——强制转屏。 这里的考虑很简单,Android 系统默认的屏幕自动旋转功能其实是不怎么「通人性」的:为了避免侧躺玩手机屏幕内容自动横屏影响观看体验,很多人往往会关闭手机的自动旋转功能;但在日常使用需要查看照片、电影时,我们就必须打开快速设置面板手动打开「自动旋转」了。 这个开关其实非常不灵活 强制转屏功能索性把「转不转」的权利完全交给了那些常年关闭「自动旋转」的用户——当系统获取到来自陀螺仪等传感器的手机旋转数据后,Android 系统会在屏幕底部显示一个可以用于强制切换横、竖屏显示的按钮。
屏幕方向发生变化时的强制转屏图标 如果你只是睡前玩玩手机那就不必理会这个按钮,数秒后它便会自动消失;如果你确实是一个偶尔需要横屏显示内容的「反自动旋转功能」用户,点击这个按钮又能免除一次下拉打开快速设置面板找开关的麻烦。 在最新的 Android 10 中,强制旋转按钮从底部导航栏迁移到了屏幕下方角落,样式也从矩形按钮变成了圆形图标,但实用性依旧。而国内的定制 UI 由于此前采用的全面屏手势方案大多不包含屏幕导航栏设计,这个强制转屏按钮也就没了踪影。
▍自动亮度调节的学习能力
iOS 用户转战 Android 阵营后常常怀念的东西除了 iMessage,还有 iOS 出色的自动亮度调节——Android 这边和「通情达理」毫不沾边的自动亮度调节已经被用户吐槽多年了。 在 Android 9 之前,自动亮度调节的简要工作流程应该是:
- 手机根据实际环境光情况和手机厂商内置的亮度调节曲线自动将屏幕亮度调节到特定数值
- 用户根据实际情况:将滑块向左拉,产生一个负比例系数,让屏幕亮度比厂商的预设值更低(觉得手机屏幕太亮了)将滑块向右拉,产生一个正比例系数,让屏幕亮度比厂商的预设值更高(觉得手机屏幕还不够亮)
解构这个流程不难发现,这种自动亮度调节机制势必会带来两个问题:一方面厂商内置的亮度调节曲线本身并不科学,欠缺调校;另一方面我们的亮度选择偏好(拖动滑块的行为)并不能得到学习和记忆。 这两个问题叠加起来就是堪称「灾难级」的自动亮度体验了——厂商内置的亮度调节曲线并不能给到我们想要的结果,由于早年机器学习在移动设备上并未得到广泛应用,Android 系统也无法记住我们的实际亮度偏好,每次自动亮度出问题时,我们都需要手动拉一下滑块。 而优秀的自动亮度调节机制是很少需要、甚至不需要我们进行手动干预的。为了改善 Android 平台的亮度调节体验,Google 在 Android 9 中针对上面的自动亮度问题做了两方面改进:
- 将亮度控制滑块所代表的控制目标由全局调节系数更改为绝对屏幕亮度
- 借助本地机器学习对亮度映射关系进行个性化调优
第一点将自动亮度开启前提下的绝对亮度控制权完全交给了用户,举个例子,当系统觉得与当前环境匹配的绝对亮度是最高亮度的 70% 时:在 Android 9 之前的版本中,我们将亮度滑块拉到最右侧能够获取到的亮度是70%*正比例系数;在 Android 9 之后的版本中,我们将亮度滑块拉到最右侧能够获取到的亮度就是 100%。 第二点则让 Android 系统记住了特定使用场景下用户的亮度选择倾向:玩游戏时喜欢把屏幕亮度调到最高,厂商预置的最低亮度对你而言有些太暗了……对这些使用习惯的记忆配合上面提到的对绝对亮度的直接操控,我们手动操作亮度控制滑块的次数理论上来说会随着使用时间的增加而减少。 奇怪的是后续版本这个功能又被翻译成了「自动调节亮度」 说了这么多,你会发现即便厂商给到的预置亮度调节曲线不太合理,Android 9 的自动亮度学习特性也能随着每一次对屏幕绝对亮度的调节,拥有「越用越懂你」的自动亮度调节能力。所幸在今年发布的国产旗舰手机中我们已经看到了基于这种思路的自动亮度调节算法,如 Find X2、小米 10 系列等,各家的机器学习算法好不好用尚且有待时间验证,但这种调校方向和解决思路是绝对值得借鉴的。
▍更灵活的通知交互方式
尽管市面上大部分机型的底层版本都已经升级到了 Android 10,Google 自 8.0 以来为 Android 系统引入的通知延后功能在不少 OEM 厂商的定制系统中依然缺席。 通知延后并不是一个无关紧要的小功能,因此当 Google 在 Android 11 DP2 中将其移除后立即招来了开发者和用户的不满,并且在随后发布的 Android DP3 中又将这个特性以开关的形式加了回去。 在原生 Android 8.0+ 版本的设备上,我们可以对一条应用所发出的通知进行延后处理,只需在对应通知上向左或向右轻扫,然后点击出现的时钟
android通过代码设置铃声_我想在国产安卓系统,用上这些超好用的原生 Android 功能...相关推荐
- android通过代码设置铃声_使用VS Code调试Android C_C++代码(无需Android源码)
需求分析 在开发 Android Native 程序时(仅 C/C++代码,无 APK 应用),之前在调试的过程中一直只是使用添加 LOG 的方式来定位程序的问题,而在 Linux 上开发平台程序时, ...
- android通过代码设置铃声_更接地气的定制 ROM,还有哪些特性可以向原生 Android 借鉴?
2019 年 7 月曾经写过一篇文章揭露 Android 定制系统「阉割」密码管理器现象的文章,虽然从我自己微不足道的影响力出发这样的文章甚至都算不上「揭露」,但 2020 年我在用的 ColorOS ...
- android通过代码设置铃声_有打扰 漏消息?那是Android手机通知设置没弄好!
点击上方电脑爱好者关注我们 在Android系统手机的设置内容中,"通知"是最容易被我们忽略的选项.实际上,如果你每天休息时都会被各种推送提醒打扰,又或是经常错过微信.邮箱.闲鱼等 ...
- android通过代码设置铃声_第六十四回:Android中UI控件之SeekBar
各位看官们,大家好,上一回中咱们说的是Android中UI控件之ProgressBar的例子,这一回咱们的例子是UI控件之SeekBar.闲话休提,言归正转.让我们一起Talk Android吧! 看 ...
- android通过代码设置铃声_Android基础(5)—自定义View
自定义View 基本认知: 虽然Android已经自带来很多强大的UI控件,但是依旧不能满足所有开发人员的需求.通常开发人员需要实现设计师精心设计的视觉效果,这样情况下可能现有的控件就不能满足需求或者 ...
- android 自定义铃声 代码,Android通过代码设置铃声
对安卓手机进行铃声操作,设置默认铃声.删除当前默认铃声.更改铃声 以默认振铃为例子,通过代码设置手机铃声 设置默认振铃 // 将铃声的路径插入contentResolver,以数据库的形式插入 /** ...
- android通过代码设置铃声_Android App驱动Arduino通过蓝牙控制交流调光器
背景知识视频教程 使用App Inventor创建Android应用viadean.com Arduino分步指南:完整指南 - 国外课栈viadean.com Arduino仿真和块编码 - 国 ...
- android 铃声设置失败,无法通过Android代码设置铃声
我正在开发一个应用程序,它将随机设置用户已选择的铃声列表中的铃声.无法通过Android代码设置铃声 虽然我的代码适用于Android N及以上版本,但我遇到了Android M及以下版本的问题.我为 ...
- Android kotlin 代码设置短信指定SIM卡发送
Android kotlin 代码设置短信指定SIM卡发送 前言 逻辑 权限 获取全部手机卡信息 修改短信使用的卡 发送短信 完事 前言 在双卡双待,甚至多卡多待的Android设备中,实现调用自己想 ...
最新文章
- AJAX Control Toolkit - DropDown
- 绿色经营:从优秀到卓越最显性准则
- 微服务监控zipkin、skywalking以及日志ELK监控系列
- hadoop运行wordcount实例,hdfs简单操作
- excel打印字被表格遮住_Excel表格太大无法打印在一页纸上?这几个打印技巧你值得学习...
- (c语言)将一个数组逆序输出
- 会计基础第八章内容2
- Android Studio开发实用网站收集
- 用java处理图片(压缩成小尺寸;加文字和logo水印)
- UIST2018 ShareSpace: Facilitating Shared Use of the Physical Space by both VR Head-Mounted Display
- ctfshow 8神PNG隐写入门(土)赛 WP
- 2020.10.1--PS--画笔色彩模式、画笔预设、自定义画笔
- 干同一份工作,工资为什么比同事低很多?
- 高等数学与matlab要用电脑吗,知到高等数学与MATLAB启蒙答案全套
- 论文阅读——Updatable Learned Index with Precise Positions(VLDB‘21)
- 购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。设d为300 000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五人处理。
- java常用命令汇总
- mysql + left join
- 28BYJ-48五线四相步进电机驱动(解决为啥抖动但是转不起来)
- Keil(MDK-ARM-STM32)一条龙----------介绍、下载、安装与注册
热门文章
- 中小企业如何才能招聘到合适的程序员?
- SAS9.4+sid更新
- 二维码的生成和解析原理
- Python性能分析利器pyinstrument讲解
- 程序员的焦虑!程序媛的捉急!测试的前景和钱景知多少?
- JQuery dataTable 扩展+Ajax Post,Get一些基本操作(二)
- ASP.NET项目上云实践——华为云DevCloud(图书管理系统)
- 独步山南之桃花源探秘(上)
- ❤️❤️❤️Unity废柴看过来,手把手教你做植物大战僵尸(十四)—— 游戏胜利和失败界面
- 【Excel】绘图案例_常见复合图:簇状图+堆积图+折线图