Android Open Source - PhoneProfiles_Eclipse Phone Call Broadcast Receiver From Project Back to project page PhoneProfiles_Eclipse .
License The source code is released under:
Apache License
If you think the Android project PhoneProfiles_Eclipse listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package sk.henrichg.phoneprofiles;
/ / f r o m w w w . j a v a 2 s . c o m
import java.util.Date;
import android.content.Context;
import android.media.AudioManager;
public class PhoneCallBroadcastReceiver extends PhoneCallReceiver {
private static AudioManager audioManager = null;
private static int savedMode = AudioManager.MODE_NORMAL;
private static boolean savedSpeakerphone = false;
private static boolean speakerphoneSelected = false;
protected boolean onStartReceive()
{
if (!GlobalData.getApplicationStarted(super.savedContext))
return false;
GlobalData.loadPreferences(savedContext);
return true;
}
protected void onEndReceive()
{
}
private void callAnswered(boolean incoming)
{
DataWrapper dataWrapper = new DataWrapper(savedContext, false, false, 0);
int speakerPhone = dataWrapper.getDatabaseHandler().getActiveProfileSpeakerphone();
dataWrapper.invalidateDataWrapper();
if (speakerPhone != 0)
{
if (audioManager == null )
audioManager = (AudioManager)savedContext.getSystemService(Context.AUDIO_SERVICE);
try {
Thread.sleep(500); // Delay 0,5 seconds to handle better turning on loudspeaker
} catch (InterruptedException e) {
}
//Activate loudspeaker
audioManager.setMode(AudioManager.MODE_IN_CALL);
savedSpeakerphone = audioManager.isSpeakerphoneOn();
audioManager.setSpeakerphoneOn(speakerPhone == 1);
speakerphoneSelected = true;
}
}
private void callEnded(boolean incoming)
{
//Deactivate loudspeaker
if (audioManager == null )
audioManager = (AudioManager)savedContext.getSystemService(Context.AUDIO_SERVICE);
//if (audioManager.isSpeakerphoneOn())
if (speakerphoneSelected)
{
audioManager.setSpeakerphoneOn(savedSpeakerphone);
audioManager.setMode(savedMode);
speakerphoneSelected = false;
}
}
protected void onIncomingCallStarted(String number, Date start) {
//Log.e("PhoneCallBroadcastReceiver.onIncomingCallStarted","xxx");
if (audioManager == null )
audioManager = (AudioManager)savedContext.getSystemService(Context.AUDIO_SERVICE);
savedMode = audioManager.getMode();
}
protected void onOutgoingCallStarted(String number, Date start) {
//Log.e("PhoneCallBroadcastReceiver.onOutgoingCallStarted","xxx");
if (audioManager == null )
audioManager = (AudioManager)savedContext.getSystemService(Context.AUDIO_SERVICE);
savedMode = audioManager.getMode();
}
protected void onIncomingCallAnswered(String number, Date start) {
//Log.e("PhoneCallBroadcastReceiver.onIncomingCallAnswered","xxx");
callAnswered(false);
}
protected void onOutgoingCallAnswered(String number, Date start) {
//Log.e("PhoneCallBroadcastReceiver.onOutgoingCallAnswered","xxx");
callAnswered(false);
}
protected void onIncomingCallEnded(String number, Date start, Date end) {
//Log.e("PhoneCallBroadcastReceiver.onIncomingCallEnded","xxx");
callEnded(true);
}
protected void onOutgoingCallEnded(String number, Date start, Date end) {
//Log.e("PhoneCallBroadcastReceiver.onOutgoingCallEnded","xxx");
callEnded(false);
}
protected void onMissedCall(String number, Date start) {
}
}
Java Source Code List sk.henrichg.phoneprofiles.ActivateProfileActivity.java sk.henrichg.phoneprofiles.ActivateProfileHelper.java sk.henrichg.phoneprofiles.ActivateProfileListAdapter.java sk.henrichg.phoneprofiles.ActivateProfileListFragment.java sk.henrichg.phoneprofiles.ApplicationsCache.java sk.henrichg.phoneprofiles.ApplicationsPreferenceAdapter.java sk.henrichg.phoneprofiles.ApplicationsPreferenceDialog.java sk.henrichg.phoneprofiles.ApplicationsPreference.java sk.henrichg.phoneprofiles.BackgroundActivateProfileActivity.java sk.henrichg.phoneprofiles.BitmapManipulator.java sk.henrichg.phoneprofiles.BootUpReceiver.java sk.henrichg.phoneprofiles.BrightnessDialogPreference.java sk.henrichg.phoneprofiles.BrightnessView.java sk.henrichg.phoneprofiles.DashClockBroadcastReceiver.java sk.henrichg.phoneprofiles.DataWrapper.java sk.henrichg.phoneprofiles.DatabaseHandler.java sk.henrichg.phoneprofiles.EditorProfileListAdapter.java sk.henrichg.phoneprofiles.EditorProfileListFragment.java sk.henrichg.phoneprofiles.EditorProfilesActivity.java sk.henrichg.phoneprofiles.ExecuteRadioProfilePrefsService.java sk.henrichg.phoneprofiles.ExecuteVolumeProfilePrefsService.java sk.henrichg.phoneprofiles.FirstStartService.java sk.henrichg.phoneprofiles.GUIData.java sk.henrichg.phoneprofiles.GlobalData.java sk.henrichg.phoneprofiles.IconWidgetProvider.java sk.henrichg.phoneprofiles.ImageViewPreferenceAdapter.java sk.henrichg.phoneprofiles.ImageViewPreferenceDialog.java sk.henrichg.phoneprofiles.ImageViewPreference.java sk.henrichg.phoneprofiles.KeyguardService.java sk.henrichg.phoneprofiles.Keyguard.java sk.henrichg.phoneprofiles.LocaleChangedReceiver.java sk.henrichg.phoneprofiles.NumberPickerPreference.java sk.henrichg.phoneprofiles.OneRowWidgetProvider.java sk.henrichg.phoneprofiles.PackageReplacedReceiver.java sk.henrichg.phoneprofiles.PhoneCallBroadcastReceiver.java sk.henrichg.phoneprofiles.PhoneCallReceiver.java sk.henrichg.phoneprofiles.PhoneProfilesDashClockExtension.java sk.henrichg.phoneprofiles.PhoneProfilesHelper.java sk.henrichg.phoneprofiles.PhoneProfilesPreferencesActivity.java sk.henrichg.phoneprofiles.PhoneProfilesPreferencesFragment.java sk.henrichg.phoneprofiles.ProfileDurationAlarmBroadcastReceiver.java sk.henrichg.phoneprofiles.ProfileListWidgetFactory.java sk.henrichg.phoneprofiles.ProfileListWidgetProvider.java sk.henrichg.phoneprofiles.ProfileListWidgetService.java sk.henrichg.phoneprofiles.ProfilePreferenceAdapter.java sk.henrichg.phoneprofiles.ProfilePreferenceDialog.java sk.henrichg.phoneprofiles.ProfilePreference.java sk.henrichg.phoneprofiles.ProfilePreferencesFragmentActivity.java sk.henrichg.phoneprofiles.ProfilePreferencesFragment.java sk.henrichg.phoneprofiles.ProfilePreferencesIndicator.java sk.henrichg.phoneprofiles.Profile.java sk.henrichg.phoneprofiles.ReceiversService.java sk.henrichg.phoneprofiles.RefreshGUIBroadcastReceiver.java sk.henrichg.phoneprofiles.RemoteExportDataActivity.java sk.henrichg.phoneprofiles.RemoveBrightnessViewBroadcastReceiver.java sk.henrichg.phoneprofiles.ScreenOnOffBroadcastReceiver.java sk.henrichg.phoneprofiles.ShortcutCreatorActivity.java sk.henrichg.phoneprofiles.ShortcutCreatorListFragment.java sk.henrichg.phoneprofiles.ShortcutProfileListAdapter.java sk.henrichg.phoneprofiles.UpgradePPHelperActivity.java sk.henrichg.phoneprofiles.VolumeDialogPreference.java