uTu*_*Fan 7 android broadcastreceiver android-audiomanager android-broadcast
寻找"最全面和兼容(即所有Android版本...)"方式来收听音量变化,我找到了两种不同的方法来处理这个问题:
哪种方法更可取?
为什么?
更新1:由于下面的评论,我发现onKeyDown()实际上接管了卷密钥,这可能不是一个完整的解决方案,因为其中一个帖子提到可以通过除硬件按钮之外的接口来更改卷(不是提到谷歌似乎正逐渐取消那些"接管"能力.
OTOH,android.media.VOLUME_CHANGED_ACTION是一个黑客,甚至没有记录.这可能意味着它将在Android 5左右停止工作 ......
更新2: registerMediaButtonEventReceiver根本不起作用!(对于音量硬件按钮,我只是尝试过).
其他见解?
如果将来的 API 能够用于BroadcastReceiver卷流,那就太好了,但现在最好的解决方案可能是注册ContentObserver设置(包括 VOLUME_NOTIFICATION):
mSettingsContentObserver = new SettingsContentObserver( new Handler() );
this.getApplicationContext().getContentResolver().registerContentObserver(
android.provider.Settings.System.CONTENT_URI, true,
mSettingsContentObserver );
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此答案:/sf/answers/491226151/
编辑:用工作代码更正。也许这个解决方案更好:/sf/answers/1217914701/
| 归档时间: |
|
| 查看次数: |
10371 次 |
| 最近记录: |