
Android
宇宙老魔女
这个作者很懒,什么都没留下…
展开
-
Android 12.0 通知发送过程源码分析-Framework
一下 NotificationManagerService简称 NMS。原创 2024-06-28 16:37:01 · 1549 阅读 · 0 评论 -
android 屏蔽系统通知
2.NotificationListener类是负责处理监听通知更新并将其传递给向用户显示的NotificationPresenter,也就是SystemUI中监听到系统通知的起点.原创 2024-03-29 10:55:38 · 506 阅读 · 0 评论 -
Android 通知--判断通知是否有跳转
在 Android 中,可以通过 PendingIntent 来实现有跳转的通知和没有跳转的通知的区别。具体来说,有跳转的通知会设置一个 PendingIntent,当用户点击通知时会触发该 PendingIntent,打开指定的界面或执行特定的操作;在上面的代码中,首先创建了一个有跳转的通知,并设置了一个 PendingIntent,用于处理用户点击通知时的操作。通过这种方式,用户点击有跳转的通知时会打开指定的界面(比如 MainActivity),而点击没有跳转的通知时则不会有任何操作。原创 2024-02-28 10:16:28 · 892 阅读 · 0 评论 -
adb pull 使用
表示当前路径,指示 ADB 将文件拷贝到当前命令行所在的路径下。这样,你就可以在不指定具体目录的情况下将文件拷贝到当前工作目录。是 Android Debug Bridge (ADB) 工具提供的一个命令,用于将设备上的文件拷贝到计算机上。命令,实现从 Android 设备上获取文件并保存到本地计算机上。文件将从设备上拷贝到你指定的本地路径中。例如,如果你想从设备上将。原创 2024-02-26 14:24:56 · 12125 阅读 · 0 评论 -
Ubuntu 安装 Android Studio
Android Studio 需要 Java 运行环境。通过以上步骤,可以在 Ubuntu 上成功安装 Android Studio,并开始进行 Android 应用程序的开发。进入解压后的 Android Studio 目录。你可以前往 Android Studio 的官方网站(安装完成后,你可以在应用菜单中找到 Android Studio,并创建一个启动器。脚本启动 Android Studio 安装向导。按照安装向导的指引完成 Android Studio 的安装过程。原创 2024-02-25 11:12:30 · 4442 阅读 · 0 评论 -
adb push 使用
执行命令后,等待文件传输完成。一旦传输完成,您应该在终端上看到相应的提示信息。使用cd命令导航到存储要推送文件的文件夹。打开终端(命令提示符)。原创 2024-02-23 14:53:47 · 6564 阅读 · 0 评论 -
Android 判断通知是进度条通知
属性来判断通知是否是进度条通知。这个属性可以用来表示通知的进度,如果通知是一个进度条通知,那么它的进度值会大于等于0。在 Android 中,可以使用通知的。应用监听安卓系统中的通知,需要区分出带进度条的通知.表示进度是否不确定(即进度条是否为循环模式)。构建一个通知时,可以通过调用。方法来添加一个进度条。参数表示最大进度值,原创 2024-02-06 11:32:57 · 1349 阅读 · 1 评论 -
Android 12.0 应用中监听系统收到的通知
上面两个接口,第一个是监听系统新通知,第二个是监听系统通知清除,如果看过Android Systemui 中有关通知的内容,就会发现,System UI 对通知的显示和通知的清除,同样也是继承该API.。当通知被清除时,会调用 onNotificationRemoved(StatusBarNotification sbn) 方法,其中的参数 sbn 代表被删除的通知.可以在该方法里做一些删除后的工作.由于源码中有@hide,表明该方法不对第三方应用开放,所以如果是系统内置的应用,则可以使用.原创 2024-01-31 10:32:36 · 1583 阅读 · 0 评论 -
Android 12.0 监听手机飞行模式
2. 接着通过监听飞行模式提供的广播来实时监听飞行模式状态 : Intent.ACTION_AIRPLANE_MODE_CHANGED。3. 在飞行模式状态变化时,会触发广播,接着在广播里作处理即可.1. 判断当前手机飞行模式是否开启。原创 2024-01-30 16:11:50 · 796 阅读 · 0 评论 -
Android 平台代码、版本与API级别对应关系
来自官网:原创 2024-01-30 10:02:14 · 647 阅读 · 0 评论 -
Android通知---创建通知(附加代码)
使用 NotificationCompat.Builder 对象设置通知的内容和渠道。以下示例展示了如何创建包含以下内容的通知:小图标,通过 setSmallIcon() 设置。这是所必需的唯一用户可见内容。标题,通过 setContentTitle() 设置。正文文本,通过 setContentText() 设置。通知优先级,通过 setPriority() 设置。优先级决定了通知在 Android 7.1 及更低版本上的干扰程度。原创 2024-01-10 18:19:11 · 2169 阅读 · 0 评论 -
Android 通知简介
图1: 基本通知详情。原创 2024-01-10 14:33:14 · 1948 阅读 · 0 评论 -
Android 13.0 修改Android系统的通知自动成组的数量
场景: Android 系统对显示在通知列表中的同一个应用的通知进行分组管理,即相同的packageName中,当通知数量达到系统默认指定的数量时,会自动成一组.参考: 相对比于Android 12.0 和 Android 11.0 指定的默认自动成组数为 4 , 在 Android 13.0 中该值为 2 .如果想修改系统默认的自动分组数,则修改属性为 config_autoGroupAtCount 后的值即可.原创 2023-11-30 17:15:49 · 895 阅读 · 0 评论 -
Android 11.0 修改Android系统的通知自动成组的数量
场景: Android 系统对显示在通知列表中的同一个应用的通知进行分组管理,即相同的packageName中,当通知数量达到系统默认指定的数量时,会自动成一组.如果想修改系统默认的自动分组数,则修改属性为 config_autoGroupAtCount 后的值即可.原创 2023-11-30 17:11:58 · 788 阅读 · 0 评论 -
Android 12.0 修改Android系统的通知自动成组的数量
场景: Android 系统对显示在通知列表中的同一个应用的通知进行分组管理,即相同的packageName中,当通知数量达到系统默认指定的数量时,会自动成一组.如果想修改系统默认的自动分组数,则修改属性为 config_autoGroupAtCount 后的值即可.原创 2023-11-30 17:08:50 · 724 阅读 · 0 评论 -
Android 12.0 中 清除通知 , 系统源码分析(一)
(3) 源码路径: frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.java。(7) 正常情况下,都能找到需要删除的通知,并顺利清除,通知清除后,还需要做一些通知资源的后续工作,继续分析 cancelNotificationLocked()(6)查看通知是如何删除的, 继续分析 removeFromNotificationListsLocked()原创 2023-11-14 17:40:25 · 1380 阅读 · 0 评论 -
Android 13 定制化开发--开启相机或麦克风时,去掉状态栏上的绿色图标
12 或更高版本的设备上,当应用使用麦克风或相机时,图标会出现在状态栏中。如果应用处于沉浸模式,图标会出现在屏幕的右上角。用户可以打开“快捷设置”,并选择图标以查看哪些应用当前正在使用麦克风或摄像头。图 1 显示了包含图标的示例屏幕截图。核心代码路径: frameworks/base/packages/SystemUI/src/com/android/systemui/privacy/PrivacyConfig.kt。需求: 去掉状态栏上的 相机 绿色图标.原创 2023-09-21 17:55:23 · 1560 阅读 · 2 评论 -
Caused by:java.lang.IllegalArgumentException: provider “network“ does not exist
(3)上面源码上可以看到,当LocationProvider 为 null 时,系统会抛出异常,这就是日志中看到的异常,因此,可以在 locationProvider 不为为 null 的时,才执行后面的步骤,在LocationManager.java中,提供了一个 isProviderEnabled()方法去判断provider是否可用.源码路径:frameworks/base/location/java/android/location/LocationManager.java。原创 2023-09-21 17:46:27 · 668 阅读 · 0 评论 -
Caused by:java.lang.IllegalArgumentException: provider “network“ does not exist
(3)上面源码上可以看到,当LocationProvider 为 null 时,系统会抛出异常,这就是日志中看到的异常,因此,可以在 locationProvider 不为为 null 的时,才执行后面的步骤,在LocationManager.java中,提供了一个 isProviderEnabled()方法去判断provider是否可用.源码路径:frameworks/base/location/java/android/location/LocationManager.java。原创 2023-09-21 16:27:49 · 442 阅读 · 0 评论 -
Caused by:java.lang.IllegalArgumentException: provider “network“ does not exist
(4)上面源码上可以看到,当LocationProvider 为 null 时,系统会抛出异常,这就是日志中看到的异常,因此,可以在 locationProvider 不为为 null 的时,才执行后面的步骤,在LocationManager.java中,提供了一个 isProviderEnabled()方法去判断provider是否可用.源码路径:frameworks/base/location/java/android/location/LocationManager.java。原创 2023-09-21 15:31:03 · 1432 阅读 · 0 评论 -
Java 对象的赋值和new出对象再赋值的问题
接着把map.get(1)的对象的引用赋给 studentTwo ,即此时 studentTwo 指向map.get(1)的对象的内存,暂且命名为内存2.场景1:首先 new 出一个 Student 对象, 这时会在内存开辟一块新的内存,暂且命名为内存1,这时,studentTwo保存内存1的地址;这时,内存1因为没有被对象引用,成为垃圾,等待JVM的回收.也就是内存1是多余的,并没有被使用.以上场景的代码逻辑上没有错误,就是性能上不同,所以下面的分析是从性能考虑上分析,让代码更高效.原创 2023-07-18 13:38:29 · 996 阅读 · 0 评论 -
android XmlPullParser解析xml(1)
(1)首先在创建/src/main/ 目录下创建Directory,名为assets , 接着在assets目录中,创建Values XML File 文件, 存放xml文件的内容,如:persons.xml。(2) 在Activity中创建Person对象,存放xml解析出来的数据.(3)开始解析xml里的内容.原创 2023-07-17 17:38:35 · 272 阅读 · 0 评论 -
Android 11.0 Launcher3 Folder 去掉背景
/设置背景的颜色 和 透明度。就是定义了背景填充的颜色和透明度,这里的透明度是255,透明度越大,就越不透明,即 0 为透明;255为完全不透明,所以,可以通过修改透明度来去掉背景即可.(1)需求:Android 11.0 桌面系统默认的文件夹,打开文件夹后,文件夹会有一个白色模糊的背景色,显得不好看,需要把这背景色去掉.即把透明度修改为 0, 把背景设置为透明即可.原创 2023-05-11 16:09:12 · 460 阅读 · 0 评论 -
Android 11.0 介绍快捷面板快捷图标个数
需求: Android 系统默认快捷面板中,显示10个默认的快捷图标,现在需要减少为8个,即隐藏 手电筒和勿扰模式的快捷图标.这是Android系统默认在快捷面板显示的快捷图标,并且是按顺序显示的,原创 2023-05-05 17:19:51 · 287 阅读 · 0 评论 -
Android 11.0 源码中判断 USB 是否在使用中
需求: Android 11.0 定制开发中,需要对 手机 USB 在使用时,需要添加一些业务代码.原创 2023-04-28 17:48:51 · 224 阅读 · 0 评论 -
Android 11.0 判断 麦克风 是否在使用中
需求: 如果手机的 麦克风 在使用时,需要添加一些业务逻辑.原创 2023-04-28 17:42:43 · 1551 阅读 · 0 评论 -
Android 11.0 源码中,判断当前是否在通话中
需求:判断当前是否处于通话中,如果在通话中,就需要添加一些业务代码限制一些功能.原创 2023-04-28 17:33:20 · 454 阅读 · 0 评论 -
Android 11.0 源码中,锁屏界面使用 密码 锁屏方式
需求:判断当系统的锁屏方式为 密码 锁屏方式时,需要做某些业务逻辑.原创 2023-04-28 17:21:30 · 793 阅读 · 0 评论 -
Android 11.0 系统源码中,判断是否设置了锁屏密码
需求:Android 系统在锁屏页面可以设置锁屏密码,或者不设置密码,现在需要通过代码方式获取当前用户是否设置了锁屏密码.原创 2023-04-28 17:09:58 · 602 阅读 · 0 评论 -
Android12.0 源码中添加系统String字符串
为了资源使用的灵活性,需要对提示框口中的提示语定义到资源文件中,之后就可以在ActivityTaskManagerService.java直接引用.在源码中,需要引用自定义的字符串,如:在frameworks目录中,为了引用自定义字符串资源,需要自定义字符串提前添加到系统中,否则无法引用,提醒:一定在该配置文件中定义英文模式字符串,否则编译的时候会提示收不到资源。(2) 之后,需要在strings.xml中,定义具体属性值.(1)系统中的资源,需要在symbols.xml中定义.原创 2023-04-25 11:46:50 · 602 阅读 · 0 评论 -
Android 12.0,ActivityTaskManagerService中获取应用的应用名称
(3)所以,可以在该函数内,获取待启动应用的包名,然后调用getAppLabel()就可以获得待启动的应用的应用名称.需求: 点击手机桌面的应用,然后获取应用的应用名.(1)手机上点击应用的快捷图标,启动应用.(4)下面是通过包名获取应用名称的方法.(2)应用启动时,都会经过一下代码。原创 2023-04-24 19:24:47 · 514 阅读 · 0 评论 -
Android 12 修改系统音量默认初始值
(2)步骤二:由于AudioService.java在构造函数中,会覆盖最大值和默认初始值,所以需要把构造函数中从配置文件中取值的代码注释掉,才能让步骤一中修改的数组的值起作用,最后清楚系统数据后便会生效.在AudioSystem.Java中,修改把默认的音量值改成需要的值,如:把设置里音量中的"媒体音量","通话音量","铃声和通知音量","闹钟音量" 改成最大值.所以可以在配置文件中添加对应的属性,并赋值,这样就不需要修改代码.默认Android 源码中并没有给这些属性配值,所以直接添加上去就可以了.原创 2023-03-06 16:15:38 · 4243 阅读 · 1 评论 -
Android Task 、 TaskRecord 和启动模式之学习笔记
一 . Task 、TaskRecord 简介1 . Task :Taks 即任务,是用户在执行某项工作时与之互动的一系列 Activity 的集合。这些 Activity 按照每个 Activity 打开的顺序排列在一个 TaskRecord 中。2 . TaskRecord :即任务栈,或者叫返回堆栈 ( back Stack ) ,是一种栈的数据结构,按照“后进先出”的规则管理着其中的元素。换言之,当用户打开一个应用,并在该应用中启动了一系列的Activity ,这些Activity 默认情.原创 2022-01-04 16:05:21 · 3384 阅读 · 1 评论 -
ThreadLocal 的分析和使用
ThreadLocal 的使用1 . 概念:类 ThreadLocal 可以使每个线程绑定自己的值,即不同线程拥有自己的值,从而使变量在不同线程间具有隔离性。2 . 下面看第一个例子:运行结果如下:分析:ThreadLocal 的初始默认值是 null ,通过调用 set () 方法进行...原创 2020-04-08 19:30:33 · 391 阅读 · 0 评论 -
Android studio Mac 系统和 Windows 系统快捷键
Mac Windows1.生成 getter 和 setter 方法 : command + N Alt + Insert2.重写方法: control +...原创 2018-04-08 04:17:51 · 195 阅读 · 0 评论 -
Android Activity 的四种启动模式
Android Activity 的四种启动模式一 . Android 任务栈 一个 Android 应用程序功能通常会被拆分为多个 Activity ,各个 Activity 之间通过 Intent 进行连接,而 Android 系统,通过栈结构来保存整个 App 的 Activity ,栈底的元素师整个任务栈的发起者。一个合理的任务调度栈不仅是性能的保证,更是提供性能的基础。 ...原创 2018-05-07 03:05:29 · 613 阅读 · 0 评论 -
Android 中 android:layout_gravity 和 android:gravity 的区别
Android 中 android:layout_gravity 和 android:gravity 的区别android:gravity :用于指定文字在控件中的对齐方式。android:layout_gravity :用于指定控件在布局中的对齐方式。...原创 2018-04-05 19:49:03 · 379 阅读 · 0 评论 -
Android View 的事件分发机制
Android View 的事件分发机制 一 . 摘要 当 Android 系统捕获到用户的点击事件后,如何准确地传递给真正需要这个事件的控件呢?不用担心,Android 给我们提供了一整套完善的事件传递、处理机制,来帮助开发者完成准确的事件分配和处理。 二 . 点击事件的传递规则 ...原创 2018-08-22 23:51:31 · 210 阅读 · 0 评论 -
Android Intent 对象详解
Android Intent 对象详解一 . Intent 介绍与分类 Intent 可以翻译为 “ 意图 ”,也就是说 Intent 封装了 Android 应用程序需要启动某个组件的 “ 意图” 。Intent 是 Android 程序中各组件之间进行交互的一种重要方式,...原创 2018-10-28 03:22:46 · 2284 阅读 · 0 评论 -
Android四大组件之Activity详解
Android四大组件之Activity详解 Activity(也可称为活动)是Android四大组件中出镜率最高的组件,也是与用户打交道最多的组件,Android的各个地方都能看到它的存在,所以,想开发出高质量的应用,我们就应该详细地了解Activity。一 . Activity的定义 Activity是一种可以包含用户界面的组件,主要用于和用户进行交互。它提供了...原创 2018-02-12 04:27:38 · 705 阅读 · 0 评论