增加了通道11的音量設置和獲取,通過保存到環境變量來實現,
並且調節音量的時候也發了廣播,通知AP此時導航調節的音量。
diff --git a/frameworks/base/api/current.txt b/frameworks/base/api/currefnt.txt
index a57af55ee..3ebc443ff 100644
--- a/frameworks/base/api/current.txtff
+++ b/frameworks/base/api/current.txt
@@ -11788,6 +11788,7 @@ package android.media {
field public static final int MODE_IN_COMMUNICATION = 3; // 0x3
field public static final int MODE_NORMAL = 0; // 0x0
field public static final int MODE_RINGTONE = 1; // 0x1
+ field public static java.lang.String NAVI_VOL_KEY;
field public static final deprecated int NUM_STREAMS = 5; // 0x5
field public static final java.lang.String PROPERTY_OUTPUT_FRAMES_PER_BUFFER = "android.media.property.OUTPUT_FRAMES_PER_BUFFER";
field public static final java.lang.String PROPERTY_OUTPUT_SAMPLE_RATE = "android.media.property.OUTPUT_SAMPLE_RATE";
diff --git a/frameworks/base/media/java/android/media/AudioManager.java b/frameworks/base/media/java/android/media/AudioManager.java
index ba01068a8..6457f6653 100755
--- a/frameworks/base/media/java/android/media/AudioManager.java
+++ b/frameworks/base/media/java/android/media/AudioManager.java
@@ -234,6 +234,7 @@ public class AudioManager {
private static boolean apCanSetVolume = SystemProperties.getBoolean("ro.bb.apCanSetVolume", false);
+ public static String NAVI_VOL_KEY = "persist.sys.navi.volume";
/** @hide Default volume index values for audio streams */
public static final int[] DEFAULT_STREAM_VOLUME = new int[] {
12, // STREAM_VOICE_CALL
@@ -757,6 +758,12 @@ public class AudioManager {
}
IAudioService service = getService();
try {
+ if(streamType ==12){
+ int type = SystemProperties.getInt(NAVI_VOL_KEY,0);
+ Log.d(TAG,"NAVI_VOL_KEY="+type);
+ return type;
+ }
+
if (mUseMasterVolume) {
return service.getMasterVolume();
} else {
@@ -842,6 +849,12 @@ public class AudioManager {
service.setMasterVolume(index, flags, mContext.getOpPackageName());
} else {
String curSetVolumeApp= ActivityThread.currentPackageName();
+ if(streamType == 12){
+ Intent intent = new Intent("com.bbkegroup.android.action.Navi.setvolume");
+ intent.putExtra("volumevalue", index);
+ mContext.sendBroadcast(intent);
+ Log.d(TAG, "setStreamVolume="+index);
+ }
if(("com.bb.carnet.navimix".equals(curSetVolumeApp))||("com.android.settings".equals(curSetVolumeApp))
||(apCanSetVolume==true)){
service.setStreamVolume(streamType, index, flags, mContext.getOpPackageName());
diff --git a/packages/apps/NaviMix/src/com/bb/carnet/service/NaviMixSerivce.java b/packages/apps/NaviMix/src/com/bb/carnet/service/NaviMixSerivce.java
index 9edc560b3..da2ae746f 100755
--- a/packages/apps/NaviMix/src/com/bb/carnet/service/NaviMixSerivce.java
+++ b/packages/apps/NaviMix/src/com/bb/carnet/service/NaviMixSerivce.java
@@ -28,6 +28,7 @@ public class NaviMixSerivce extends Service {
public static final String BT_CALL_ACTION = "send.to.os.btcall.state";
public static final String ACTION_BT_UPGRADE_SERVER_TO_OS = "com.bbkegroup.android.action.bbserverToOs.btupgrade";
public static final String ACTION_BT_UPGRADE_OS_TO_SERVER = "com.bbkegroup.android.action.OsTobbserver.btupgrade";
+ public static final String ACTION_NAVI_SET_VOLUME = "com.bbkegroup.android.action.Navi.setvolume";
private static final int custidNum=SystemProperties.getInt("sys.imx6.custid_num", 0);
@Override
public IBinder onBind(Intent arg0) {
@@ -45,6 +46,7 @@ public class NaviMixSerivce extends Service {
filter = new IntentFilter();
filter.addAction(BT_CALL_ACTION);
filter.addAction(ACTION_BT_UPGRADE_SERVER_TO_OS);
+ filter.addAction(ACTION_NAVI_SET_VOLUME);
registerReceiver(new NaviReceiver(), filter);
m_am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
@@ -137,6 +139,11 @@ public class NaviMixSerivce extends Service {
bbOSLib.setUpdateBT(1);
sendBtupteState(ACTION_BT_UPGRADE_OS_TO_SERVER);
}
+ }else if(action.equals(ACTION_NAVI_SET_VOLUME)){
+ int state = intent.getIntExtra("volumevalue", -1);
+ String s = String.valueOf(state);
+ SystemProperties.set("persist.sys.navi.volume",s);
+ Log.d(TAG,"recevie volumevalue:"+state);
}
}
}