这是一个 change feature 的实现
此 feature 的目的是查询当前是哪个 app 正在播放音乐
[SOLUTION]
1: 修改 frameworks\base\media\java\android\media\IAudioService.aidl, 加入方法声明:
String getFocusedPackageName();
2: frameworks\base\media\java\android\media\AudioService.java 中加入方法:
public String getFocusedPackageName(){
return mMediaFocusControl.getFocusedPackageName();
}
return mMediaFocusControl.getFocusedPackageName();
}
3: MediaFocusControl.java 增加方法
protected String getFocusedpackageName(){
synchronized(mAudioFocusLock){
if(mFocusStack.empty()){
return "";
}else
return mFocusStack.peek().getPackageName();
}
}
protected String getFocusedpackageName(){
synchronized(mAudioFocusLock){
if(mFocusStack.empty()){
return "";
}else
return mFocusStack.peek().getPackageName();
}
}
4: FocusRequester.java增加方法
public String getPackageName(){
return mPackageName;
}
public String getPackageName(){
return mPackageName;
}
则上层通过调用 AudioService 的 getFocusedPackageName 接口即可获取到需要的数据
相关FAQ:
FAQ12909 [Audio Common]耳机按键功能定制: 单击:播放/暂停音乐,双击:下一首,三击:上一首
FAQ14329 [如何在Framework层互斥两个第三方音乐播放器]
FAQ14660 音量警告提示框选择OK,重启后再按侧键增大音量希望还会弹出音量警告提示框
FAQ15283 [Audio Driver] 手机放音乐时连接音箱, 将音箱音量调到最大时,音乐暂停