在寻找一种“最全面且兼容(即所有Android版本...)”的方式来收听音量变化时,我发现了两种不同的方法来处理此问题:registerMediaButtonEventReceiveronKeyDown+SettingsContentObserver哪种方法更可取?为什么?更新1:感谢下面的评论,我发现onKeyDown()实际上接管音量键,这可能不是一个完整的解决方案之一帖子提到音量可以通过硬件按钮以外的界面来改变(更不用说谷歌似乎正在逐渐取消那些“接管”功能)。OTOH,android.media.VOLUME_CHANGED_ACTION是一个hack和isn'tevendocu
我在Android上使用APPRTCdemo应用程序。我试图让它播放来自其他对等方的声音,与Android设置中设置的音量一样大。因此,如果用户将设备静音,则不会听到音频。我几乎尝试了每个AndroidAPI调用,但似乎对音量没有任何影响。这些是我尝试过的事情:AudioManageraudioManager=(AudioManager)_context.getSystemService(Context.AUDIO_SERVICE);intvolume=audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);volume
在我的android应用程序中,我需要提高音量,当我提高音量时,我会收到这样的通知:“将音量提高到安全水平以上?长时间高音量收听可能会损害您的听力"如何禁用此功能? 最佳答案 此限制已融入Android操作系统,因此该解决方案几乎是通用的。您需要先对您的设备进行root操作...搜索适用于您的设备的root操作方法并对其进行root操作。然后查看下面的链接。作者说“它只需在启动时将config_safe_media_volume_enabled系统参数设置为false即可工作。因为它使用Xposed框架,所以它独立于设备和rom”h
只是想知道是否有人可以告诉我如何在android中捕获音量降低键的长按键。详细问题:我想创建一个BroadcastReceiver来接收音量长按键事件。(没有任何UI交互)。我知道搜索按钮是可能的。音量键可用吗?谢谢 最佳答案 下面的代码可能会对您有所帮助:@OverridepublicbooleanonKeyLongPress(intkeyCode,KeyEventevent){if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN){//toyourstuffherereturntrue;}return
某些Android程序会在按下硬件音量增大/减小按钮时触发“媒体音量”slider。我的应用程序似乎在按下硬件按钮时设置铃声音量。如何启用媒体音量slider?我不希望用户在使用我的应用程序时必须进入他们的设置来更改媒体音量。 最佳答案 只需调用Activity.setVolumeControlStream(AudioManager.STREAM_MUSIC)在Activity的onCreate方法中。 关于android-在Android应用程序中启用媒体音量slider,我们在Sta
在我的应用程序中,我需要处理物理按钮事件,例如音量按钮点击。为此,我正在使用audiomanager的registerMediaButtonEventReceiver方法。有一个article与我的情况相关,但我无法使其正常工作。这是我使用的代码:publicclassVolumeBroadcastActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanc
所以在我的2.3设备上,即使设备音量设置为0/静音,我也可以使用SoundPool或MediaPlayer以最大音量播放声音。据我了解,您必须手动获取设备电平并在播放声音时进行设置。这就是我希望行为起作用的方式。但是,我现在注意到在我的4.0设备上,声音会自动以设备设置的级别播放,这是我不想要的!这是操作系统版本之间的差异吗?如果是这样,有没有办法忽略设备音量?因此,即使它被静音,我也可以播放声音并让别人听到它?我无法解释为什么我需要这个功能,但我真的很需要。谢谢! 最佳答案 我对闹钟应用程序也有类似的需求。这是相关代码以及有关该卷
我知道如何在Activity中收听音量按钮。但是我可以在后台服务中这样做吗?如果是,该怎么做? 最佳答案 这是可能的。使用下面的代码(对于较新的Android版本,尤其是Marshmallow,请参阅答案底部):publicclassSettingsContentObserverextendsContentObserver{intpreviousVolume;Contextcontext;publicSettingsContentObserver(Contextc,Handlerhandler){super(handler);con
我有一台安卓电视(飞利浦49PUS6401)我想将环绕声系统连接到它,即使仅在立体声中使用,它的质量也比内置扬声器好得多。但是这台电视将主输出和耳机输出的音量控制分开,结果是即使关闭电视扬声器,Remote上的音量键也不会调节耳机音量(我正在使用作为一条线)我打算编写一个简单的应用程序来在主音量发生变化时调整耳机音量,但我似乎无法弄清楚如何获取或设置耳机音量,因为音频管理器处理的是流而不是输出,所以我能从中得到的唯一值(value)就是主人。如何找到获取/设置耳机音量的方法?我已经通过adb获得了shell访问权限,但我无法获得root。作为引用,电视正在运行最新的固件,即androi
有没有什么方法可以在Android上监听音量变化事件,而不只是接管音量按钮?我发现唯一有效的是here,但它仅在音量控制消失后才起作用。并非所有设备都有音量按钮,我需要在音量变化发生时立即捕获它们,而不是在音量对话框消失之后。 最佳答案 更好的是,您可以按如下方式注册一个ContentObserver:getApplicationContext().getContentResolver().registerContentObserver(android.provider.Settings.System.CONTENT_URI,tru