From 3f33835f15f37d7fc6f1129cc05a429626c3ff08 Mon Sep 17 00:00:00 2001 From: "pc-PC\\pc" Date: Mon, 4 Dec 2017 18:18:27 +0900 Subject: [PATCH] Earset Connectivity Broadcast Processing --- src/android/org/linphone/CallActivity.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/android/org/linphone/CallActivity.java b/src/android/org/linphone/CallActivity.java index e9ddc504f..e81163051 100644 --- a/src/android/org/linphone/CallActivity.java +++ b/src/android/org/linphone/CallActivity.java @@ -24,8 +24,10 @@ import android.app.Activity; import android.app.Dialog; import android.app.Fragment; import android.app.FragmentTransaction; +import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.res.Resources; @@ -115,6 +117,7 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList private boolean isVideoCallPaused = false; private Dialog dialog = null; private static long TimeRemind = 0; + private HeadsetReceiver headsetReceiver; private LinearLayout callsList, conferenceList; private LayoutInflater inflater; @@ -149,6 +152,12 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); setContentView(R.layout.call); + //Earset Connectivity Broadcast Processing + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction("android.intent.action.HEADSET_PLUG"); + headsetReceiver = new HeadsetReceiver(); + registerReceiver(headsetReceiver, intentFilter); + isTransferAllowed = getApplicationContext().getResources().getBoolean(R.bool.allow_transfers); cameraNumber = AndroidCameraConfiguration.retrieveCameras().length; @@ -1748,4 +1757,29 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList }; mTimer.scheduleAtFixedRate(mTask, 0, 1000); } + + ////Earset Connectivity Broadcast innerClass + public class HeadsetReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + if (!BluetoothManager.getInstance().isBluetoothHeadsetAvailable()) { + if (intent.hasExtra("state")) { + switch (intent.getIntExtra("state", 0)) { + case 0: + LinphoneManager.getInstance().routeAudioToSpeaker(); + isSpeakerEnabled = true; + speaker.setEnabled(true); + refreshInCallActions(); + break; + case 1: + LinphoneManager.getInstance().routeAudioToReceiver(); + isSpeakerEnabled = false; + speaker.setEnabled(false); + break; + } + refreshInCallActions(); + } + } + } + } }