Android设置界面添加开关控制开关机铃声

android 9.0 系统添加开机铃声 在9.0的系统rom定制化开发中,在做一些项目中,有些产品需求要求添加开机铃声,就是在播放开机动画的过程中,播放开机音乐, 在原生系统中,是默认可以播放开机铃声的,接下来来分析下系统关于播放铃声的相关源码,看下开机铃声具体怎么添加,系统 才可以在播放开机动画的过程中,播放开机铃声,接下来分析下相关的的代码 阅读详情

平台:MTK

Android 6.0

Desired:在设置里面做一个开关,可以选择性的打开或关闭开机铃声,默认打开

通过SystemProperties.java来取得\设置系统属性的值

修改开关机动画无法再上层做开关机动画的控制,该方法通过系统属性来控制

Path:frameworks/base/cmds/bootanimation/bootanimation_main.cpp

 

--- a/alps/frameworks/base/cmds/bootanimation/bootanimation_main.cpp
+++ b/alps/frameworks/base/cmds/bootanimation/bootanimation_main.cpp
@@ -56,6 +56,15 @@ int main(int argc, char** argv)
         bool setBoot = true;
         bool setRotated = false;
         bool sePaly = true;
+               //add 20170727
+               char audio[PROPERTY_VALUE_MAX];
+               property_get("persist.sys.poweronoff_audio", audio, "1");
+               if (atoi(audio) == 1){
+                       sePaly = true;
+               }else{
+                       sePaly = false;
+               }
+               //end
         if(argc > 1){
            if(!strcmp(argv[1],"shut"))
                setBoot = false;


Path:packages/apps/Settings/src/com/mediatek/audioprofile/Editprofile.java

 

 

--- a/alps/packages/apps/Settings/src/com/mediatek/audioprofile/Editprofile.java
+++ b/alps/packages/apps/Settings/src/com/mediatek/audioprofile/Editprofile.java
@@ -69,6 +69,8 @@ import com.mediatek.settings.FeatureOption;
 
 import java.util.Observable;
 import java.util.Observer;
+//add 20170727
+import android.os.SystemProperties;
 
 /**
  * Edit profile fragment, started when one profile setting button is clicked.
@@ -88,6 +90,9 @@ public class Editprofile extends SettingsPreferenceFragment {
     public static final String KEY_SOUND_EFFECTS = "audible_selection";
     public static final String KEY_LOCK_SOUNDS = "screen_lock_sounds";
     public static final String KEY_HAPTIC_FEEDBACK = "haptic_feedback";
+	// add 20170725
+	public static final String KEY_BOOT_SOUND = "boot_sound";
+	
     private static final String ACTION_SIM_SETTINGS = "com.android.settings.sim.SELECT_SUB";
 
     private static final String TAG = "AudioProfile/EditProfile";
@@ -97,6 +102,8 @@ public class Editprofile extends SettingsPreferenceFragment {
     private TwoStatePreference mSoundEffects;
     private TwoStatePreference mHapticFeedback;
     private TwoStatePreference mLockSounds;
+	// add 20170725
+	private TwoStatePreference mBootSounds;
 
     //private RingerVolumePreference mVolumePref;
     private DefaultRingtonePreference mVoiceRingtone;
@@ -302,11 +309,15 @@ public class Editprofile extends SettingsPreferenceFragment {
         mSoundEffects = (TwoStatePreference) findPreference(KEY_SOUND_EFFECTS);
         mLockSounds = (TwoStatePreference) findPreference(KEY_LOCK_SOUNDS);
         mHapticFeedback = (TwoStatePreference) findPreference(KEY_HAPTIC_FEEDBACK);
+		// add 20170725
+		mBootSounds = (TwoStatePreference) findPreference(KEY_BOOT_SOUND);
         setPreferenceListener(KEY_VIBRATE, mVibrat);
         setPreferenceListener(KEY_DTMF_TONE, mDtmfTone);
         setPreferenceListener(KEY_SOUND_EFFECTS, mSoundEffects);
         setPreferenceListener(KEY_LOCK_SOUNDS, mLockSounds);
         setPreferenceListener(KEY_HAPTIC_FEEDBACK, mHapticFeedback);
+		// add 20170725
+		setPreferenceListener(KEY_BOOT_SOUND, mBootSounds);
     }
 
     private void removePrefWhenSilentOrMeeting(PreferenceScreen parent) {
@@ -317,6 +328,8 @@ public class Editprofile extends SettingsPreferenceFragment {
         parent.removePreference(mVideoRingtone);
         parent.removePreference(mSipRingtone);
         parent.removePreference(mNotify);
+		// add 20170725
+		parent.removePreference(mBootSounds);
         mVibrat.setEnabled(false);
     }
 
@@ -371,6 +384,8 @@ public class Editprofile extends SettingsPreferenceFragment {
         mSoundEffects.setChecked(mProfileManager.isSoundEffectEnabled(mKey));
         mLockSounds.setChecked(mProfileManager.isLockScreenEnabled(mKey));
         mHapticFeedback.setChecked(mProfileManager.isVibrateOnTouchEnabled(mKey));
+		//add 20170727
+		mBootSounds.setChecked(SystemProperties.get("persist.sys.poweronoff_audio","0").equals("1")? true : false);
     }
 
     /**
@@ -502,7 +517,11 @@ public class Editprofile extends SettingsPreferenceFragment {
             mProfileManager.setLockScreenEnabled(mKey, isChecked);
         } else if (preferenceType.equals(KEY_HAPTIC_FEEDBACK)) {
             mProfileManager.setVibrateOnTouchEnabled(mKey, isChecked);
-        }
+        } else if (preferenceType.equals(KEY_BOOT_SOUND)){
+			// add 20170725
+			Log.d("lds","isChecked:"+isChecked);
+			SystemProperties.set("persist.sys.poweronoff_audio",isChecked?"1":"0");
+		}
     }
 
     private void setRingtongTypeAndStartSIMSelector(int keyIndex) {

Path:packages/apps/Settings/res_ext/xml/edit_profile_prefs.xml

--- a/alps/packages/apps/Settings/res_ext/xml/edit_profile_prefs.xml
+++ b/alps/packages/apps/Settings/res_ext/xml/edit_profile_prefs.xml
@@ -112,4 +112,11 @@
             android:switchTextOff=""
             android:switchTextOn=""
             android:persistent="false"/>
+               <!--add 20170727 Boot sound -->
+        <SwitchPreference 
+            android:key="boot_sound" 
+            android:title="@string/boot_sound_enable_title"
+            android:switchTextOff=""
+            android:switchTextOn=""
+            android:persistent="false"/>
 </PreferenceScreen>


Path:packages/apps/Settings/res/values/strings.xml

 

 

--- a/alps/packages/apps/Settings/res/values/strings.xml
+++ b/alps/packages/apps/Settings/res/values/strings.xml
@@ -7030,4 +7030,6 @@
        <string name="ram_size">1.00 GB</string>
        <string name="phone_store_size">8.00 GB</string>
     <!-- add end -->
+       <!-- add 20170727 -->
+       <string name="boot_sound_enable_title">boot sound</string>
 </resources>

 

控制开关初始值可以再system.prop文件中添加属性persist.sys.poweronoff_audio = 1 设置一个默认值即可

如果是关机动画的话需在:frameworks/base/services/core/Java/com/android/server/power/ShutdownThread.java

在此文件中找到bPlayaudio属性,通过控制该属性的值来决定开关机时是否播放开关机铃声。
注:1.adb shell查看系统属性

getprop 查看所有系统属性

getprop|grep xxx.xxx.xx 查看指定属性

 

为Android设备添加自定义开机铃声 在该文件夹中,添加你想要作为开机铃声的音频文件(例如,命名为"startup_ringtone.mp3")。以上代码中,我们首先获取音频文件的Uri,然后将其复制到媒体存储库中,并将其标记为铃声、通知铃声和闹钟铃声。在Android设备上,我们可以通过编程方式实现添加自定义开机铃声的功能。这样,当你的应用程序运行时,它将自动设置你指定的音频文件作为设备的开机铃声。如有任何进一步的疑问,请随时提问。为你在步骤1中添加的音频文件的名称(不包括文件扩展名)。类将新的铃声设置为默认的闹钟铃声、通知铃声和来电铃声。 阅读详情

相关推荐

Android系统实现自定义开机铃声

通过遵循以上步骤,您可以在Android设备上实现自定义的开机铃声。首先,您需要准备合适的铃声文件并将其添加到项目中。然后,创建一个BroadcastReceiver类来接收设备开机完成的广播,并在其中设置开机铃声。这样,当设备重启后,您设置的开机铃声将会生效。在Android设备上,我们可以通过一些简单的步骤来实现自定义的开机铃声。在本文中,我将向您展示如何使用Android的系统功能来添加自定义的开机铃声。当设备重启后,您设置的开机铃声将会生效。的类,用于接收设备开机完成的广播并执行相应的操作。

ByteJolt的博客 910

Android 8.1添加开关机铃声

8.1添加开机动画和铃声

Framework-coder的博客 2091

vc formal实例

gui 方式启动命令,

weixin_45077935的博客 682

Android6.0/7.0上 添加对开机铃声的开关控制操作

在Android源码的设计中,开机动画、开机铃声相关配置实现都是在下面这个目录下操作的: /frameworks/base/cmds/bootanimation/BootAnimation.cpp 在这个下面,会根据系统的一些属性值来判断 是否加载开机动画以及开机铃声。例如,在MTK/高通平台,会在该文件下根据系统属性键值” persist.sys.silence “获取属性值,1 代表开

MarkBlue的博客 2774

AI对嵌入式的冲击分三波,大多数人只看到了第一波

摘要:AI对嵌入式行业的冲击将分三波递进:第一波(已发生)是代码生成,AI能完成底层驱动配置;第二波(1-2年内)是架构设计,AI将参与系统方案制定;第三波(2-3年)是需求验证,AI能穷举测试用例但无法替代安全决策。每波冲击都将重新定义工程师的价值标准,经验型工程师若不能将隐性知识转化为显性规则将面临淘汰。作者指出,完全不用AI的人第一波就会被淘汰,而仅满足于第一波应用的人将在后续冲击中落后。

u010898524的博客 962

DeepSeek 在 PostgreSQL 中,执行 `DELETE` 操作后,数据占用的空间并不会立即释放给操作系统

操作后,数据占用的空间并不会立即释放给操作系统。这是 PostgreSQL 的 MVCC(多版本并发控制)机制决定的——删除的数据只是被标记为“死元组”,物理空间仍然被表占用。这是最彻底的释放方式,会将表重写为一个没有空洞的新文件,将空间返回给操作系统。如果你的表非常大(如几百GB),或者这是生产环境的核心表,建议优先考虑。你可以告诉我你的表大概多大、是否能接受锁表,我可以给你更精确的建议。要真正释放空间,需要根据你的实际需求,从以下三种方案中选择一种。如果你既想彻底释放空间,又无法接受锁表,

m0_37843156的博客 405

Android Q自定义开关机动画

Android Q自定义开关机动画 ====== Step 1: Enable MtkBootanimation ====== /vendor/mediatek/proprietary/operator/frameworks/bootanimation/ Rename Android_disable.mk to Android.mk /vendor/mediatek/proprietary/o...

a785722173的博客 5110

matlab中高频变压器怎么找,干货|手把手教你绕制高频变压器

原标题:干货|手把手教你绕制高频变压器绕制一个变压器所需材料:磁芯、骨架、各种铜线、麦拉胶带。变压器参数:磁芯:EE22原边:134T(1-3脚),辅助:32T(5-4脚),输出:15T(10-9脚)原边电感:1380±10%uH漏感:≤44uH引脚分布图: 特别注意:绕制方法为网上下载,其中变压器绕制方法是对的,但其中存在着很多问题(比如,正规变压器的绕组的头和尾是要添加铁氟龙套管的,每一层之间...

weixin_30895121的博客 2127

开关机铃声——android系统属性的使用

开机涉及到的文件在framework/base/cmds/bootAnimation.cpp 关机文件在shutdownThread.java中可以找到相关的代码(包括关机、重启、静音等模式的选择) 下面具体说说怎么利用系统熟悉在开关机的时候设置是否需要开关机铃声。 首先需要设置一个系统属性。添加路径:路径:system/core/rootdir/int.rc,按照需求的不同在不同的位置添加

lbc_10的专栏 1156

5分钟搞懂基因组规模代谢网络(GSMM):从数据库选择到模型构建全流程

本文详细解析基因组规模代谢网络(GSMM)构建的全流程,从数据库选择到模型优化。重点介绍MetaCyc、BiGG等主流数据库的黄金三角评估法则,对比自上而下与自下而上两种建模方法,并提供模型修剪、仿真优化的实用技巧与避坑指南,帮助研究者高效构建精准代谢网络模型。

weixin_30872157的博客 140

C51:PWM+舵机角度控制

PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%.脉冲宽度调制通过占空比编码模拟信号一个周期内,高电平占据时长的百分比如下图所示,最便宜的舵机sg90,常用三根或者四根接线,黄色为PWM信号控制。

qq_73379310的博客 3392

Android源码开发之控制开关机铃声

Android的开关机铃声是可以控制的,可以在设置里加个开关,控制开关机铃声的播放。因为涉及到c部分,所以systemprop是最好的选择 1.开机铃声的控制 frameworks/base/cmds/bootanimation/bootanimation_main.cpp 在main函数,找到sePaly标志位 char audio[PROPERTY_VALUE_MAX]; pro

华歌诗的博客 3092

YOLOv8性能提升:引入华为GhostNetv1特征提取网络

本文提出一种轻量化改进方案,将GhostNetV1作为YOLOv8的主干网络,以提升移动端部署效率。通过Ghost模块的两步特征生成机制(初级卷积+廉价操作),显著降低了30%的计算量(FLOPs)和参数量,精度损失控制在1%以内。实验表明,改进后的模型在骁龙865芯片上推理速度提升25%。核心创新包括:1)用GhostBottleneck替换CSP模块;2)保留FPN+PAN结构确保多尺度检测能力;3)提供完整的PyTorch实现方案。该工作为资源受限场景的目标检测提供了实用解决方案,未来可结合注意力机制

shrgegrb的博客 1181

android开关机动画铃声

1. 开关机动画的启动 Android系统在init.rc中定义了很多Service,具体定义格式可以参考《Android Platform Developer’s Guide》中的“Android Init Language”。init.rc中定义的Service将会被init进程创建,其中已经定义的服务就包含了开机动画. 每一项服务必须在/init.rc中定义Android

hufeng882412的专栏 3456

1、CUDA 编程基础

GPU计算的发展历程与重要性。首先回顾了计算机技术的发展,特别是摩尔定律的影响,强调了计算能力的快速提升。然而,随着晶体管尺寸的缩小和频率的停滞,单线程性能增长放缓。为了继续提升性能,多核处理器开始普及,促使软件开发者开始考虑并行计算。介绍了延迟导向设计和吞吐量导向设计的概念,CPU和GPU分别代表了这两种设计方法。GPU是吞吐量导向的,拥有众多弱小的ALU,通过流水线处理提高算术吞吐量。GPU的成功在于其高并行性和高吞吐量,以及能够分摊高昂的固定成本的大量销售额。

Justinyh的博客 581

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

非运营商定制项目如何客制化自己的开关机动画、开关机铃声

[Android Version] 6573 Android V2.3 6575 Android V2.3/V4.0 [Description] 此方案供非运营商定制项目客制化开关机动画与开关机铃声 [Solution] 一、开机动画: 1) 制作bootanimation.zip。制作方法举例如下:    分别创建名为“part0”和“part1”的文件夹以及一个名为“des

erica_sadun的专栏 922

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

mtk使用android开关机动画,android MTK修改开关机动画

一丶修改开机logo① device/tangxun/tx6580_weg_m/ProjectConfig.mk 中BOOT_LOGO=hd720 可知开机的图标在hd720文件夹中(这个需要根据屏幕的分辨率指定的文件夹) uboot和kernel的开机图片在vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/hd720...

weixin_34086714的博客 1055

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

mtk android 设置默认铃声,[转载]MTK修改铃声资源

MTK铃声有几个地方要修改:1,闹钟和来电铃声Midi铃声对应于 custpack_audio.c 下的变量 custpack_audio这个数组是复交类型的变量,类型我们可以分析下:如下定义的typedef struct {#ifdef MIDI_IN_CUSTPACK_BINkal_uint32 midis_count;const audio_resource_structmtk_resour...

weixin_30269407的博客 778

Android如何定制化自己的开关机动画、开关机铃声

一、开机动画: 1) 制作bootanimation.zip。制作方法举例如下: 分别创建名为“part0”和“part1”的文件夹以及一个名为“desc.txt”文件。“part0”中存储动画的第一阶段的资源图片,“part1”存储第二阶段的资源图片,注意图片为png格式。 播放控制由“desc.txt”指定,内容如下: 320 480 30 p 1 0 part0 p 0 0 pa

L_mixiu的博客 4057

android 定制关机动画,android 非运营商定制项目如何客制化自己的开关机动画、开关机铃声...

一、开机动画:1) 制作bootanimation.zip。制作方法举例如下:分别创建名为“part0”和“part1”的文件夹以及一个名为“desc.txt”文件。“part0”中存储动画的第一阶段的资源图片,“part1”存储第二阶段的资源图片,注意图片为png格式。播放控制由“desc.txt”指定,内容如下:320 480 30p 1 0 part0p 0 0 part1各参数功能如下: ...

weixin_29378153的博客 511

Android 客制化自己的开关机动画 开关机铃声

前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          优快云:http://www.youkuaiyun.com          雨季o莫忧离:http://blog.youkuaiyun.com/luckkof 正文   一、开机动画: 1) 制作bootanimation.zip。制作方法举例如下:

奥特曼 1595

android定制化开关机动画、铃音

开机动画的替换也很简单,我们把做好的bootanimation.zip替换掉原来的/system/media/bootanimation.zip文件即可。Init.rc中定义的Service将会被Init进程创建,其中已经定义的服务就包含了开机动画,但没有关机动画的定义。”属性的请求,属性服务将使用该属性值作为服务名找到该服务,启动该服务。每一项服务必须在/init.rc中定义.Android系统启动时,init守护进程将解析init.rc和启动属性服务,属性“仿照开机动画服务,我们新定义关机动画。

2501_90222539的博客 764

android MTK修改开关机动画

  一丶修改开机logo ① device/tangxun/tx6580_weg_m/ProjectConfig.mk   中BOOT_LOGO=hd720  可知开机的图标在hd720文件夹中(这个需要根据屏幕的分辨率指定的文件夹)   uboot和kernel的开机图片在vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/...

Framework-coder的博客 3654

4.4开关机动画,切换指令修改参考

添加开机关机动画 涉及文件: 一:动画和铃声     //开关机动画和铃声位置     mediatek/BootAnimation         //如果是新添加的要在此文件下添加     mediatek/BootAnimation/logoCopy.mk  //添加拷贝        //修改位置     frameworks/base/cmds/bootanimation

King_blok的博客 1700

Android 非运营商定制项目如何客制化自己的开关机动画、开关机铃声

前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          优快云:http://www.youkuaiyun.com          雨季o莫忧离:http://blog.youkuaiyun.com/luckkof 正文   一、开机动画: 1) 制作bootanimation.zip。制作方法举例如下

奥特曼 1536
上一篇: android手机存储8G\16G显示修改
下一篇: 修改拨号键盘密度
旧时旅人
博客等级 码龄10年 186粉丝 117原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旧时旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值