/*
LinphoneManager.java
Copyright (C) 2010 Belledonne Communications, Grenoble, France
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.linphone;
import static android.media.AudioManager.MODE_NORMAL;
import static android.media.AudioManager.STREAM_RING;
import static android.media.AudioManager.STREAM_VOICE_CALL;
import static org.linphone.R.string.pref_codec_amr_key;
import static org.linphone.R.string.pref_codec_amrwb_key;
import static org.linphone.R.string.pref_codec_ilbc_key;
import static org.linphone.R.string.pref_codec_speex16_key;
import static org.linphone.R.string.pref_codec_speex32_key;
import static org.linphone.R.string.pref_video_enable_key;
import static org.linphone.core.LinphoneCall.State.CallEnd;
import static org.linphone.core.LinphoneCall.State.Error;
import static org.linphone.core.LinphoneCall.State.IncomingReceived;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import org.linphone.LinphoneSimpleListener.ConnectivityChangedListener;
import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener;
import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener.AudioState;
import org.linphone.LinphoneSimpleListener.LinphoneOnDTMFReceivedListener;
import org.linphone.LinphoneSimpleListener.LinphoneOnMessageReceivedListener;
import org.linphone.LinphoneSimpleListener.LinphoneServiceListener;
import org.linphone.core.CallDirection;
import org.linphone.core.LinphoneAddress;
import org.linphone.core.LinphoneAuthInfo;
import org.linphone.core.LinphoneCall;
import org.linphone.core.LinphoneCall.State;
import org.linphone.core.LinphoneCallParams;
import org.linphone.core.LinphoneCallStats;
import org.linphone.core.LinphoneChatMessage;
import org.linphone.core.LinphoneChatRoom;
import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
import org.linphone.core.LinphoneCore.FirewallPolicy;
import org.linphone.core.LinphoneCore.GlobalState;
import org.linphone.core.LinphoneCore.MediaEncryption;
import org.linphone.core.LinphoneCore.RegistrationState;
import org.linphone.core.LinphoneCore.Transports;
import org.linphone.core.LinphoneCoreException;
import org.linphone.core.LinphoneCoreFactory;
import org.linphone.core.LinphoneCoreListener;
import org.linphone.core.LinphoneFriend;
import org.linphone.core.LinphoneProxyConfig;
import org.linphone.core.PayloadType;
import org.linphone.mediastream.Log;
import org.linphone.mediastream.Version;
import org.linphone.mediastream.video.capture.AndroidVideoApi5JniWrapper;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration.AndroidCamera;
import org.linphone.mediastream.video.capture.hwconf.Hacks;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothHeadset;
import android.bluetooth.BluetoothProfile;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;
/**
*
* Manager of the low level LibLinphone stuff.<br />
* Including:<ul>
* <li>Starting C liblinphone</li>
* <li>Reacting to C liblinphone state changes</li>
* <li>Calling Linphone android service listener methods</li>
* <li>Interacting from Android GUI/service with low level SIP stuff/</li>
* </ul>
*
* Add Service Listener to react to Linphone state changes.
*
* @author Guillaume Beraudo
*
*/
public final class LinphoneManager implements LinphoneCoreListener {
private static LinphoneManager instance;
private Context mServiceContext;
private AudioManager mAudioManager;
private PowerManager mPowerManager;
private ConnectivityManager mConnectivityManager;
private SharedPreferences mPref;
private Resources mR;
private LinphoneCore mLc;
private static Transports initialTransports;
private static LinphonePreferenceManager sLPref;
private String lastLcStatusMessage;
private String basePath;
private static boolean sExited;
private String contactParams;
private WakeLock mIncallWakeLock;
private BluetoothAdapter mBluetoothAdapter;
private BluetoothHeadset mBluetoothHeadset;
private BluetoothProfile.ServiceListener mProfileListener;
private BroadcastReceiver bluetoothReiceiver = new BluetoothManager();
public boolean isBluetoothScoConnected;
public boolean isUsingBluetoothAudioRoute;
private static List<LinphoneSimpleListener> simpleListeners = new ArrayList<LinphoneSimpleListener>();
public static void addListener(LinphoneSimpleListener listener) {
if (!simpleListeners.contains(listener)) {
simpleListeners.add(listener);
}
}
public static void removeListener(LinphoneSimpleListener listener) {
simpleListeners.remove(listener);
}
private LinphoneManager(final Context c, LinphoneServiceListener listener) {
sExited=false;
mServiceContext = c;
mListenerDispatcher = new ListenerDispatcher(listener);
basePath = c.getFilesDir().getAbsolutePath();
mLPConfigXsd = basePath + "/lpconfig.xsd";
mLinphoneInitialConfigFile = basePath + "/linphonerc";
mLinphoneConfigFile = basePath + "/.linphonerc";
mLinphoneRootCaFile = basePath + "/rootca.pem";
mRingSoundFile = basePath + "/oldphone_mono.wav";
mRingbackSoundFile = basePath + "/ringback.wav";
mPauseSoundFile = basePath + "/toy_mono.wav";
sLPref = LinphonePreferenceManager.getInstance(c);
mAudioManager = ((AudioManager) c.getSystemService(Context.AUDIO_SERVICE));
mVibrator = (Vibrator) c.getSystemService(Context.VIBRATOR_SERVICE);
mPref = PreferenceManager.getDefaultSharedPreferences(c);
mPowerManager = (PowerManager) c.getSystemService(Context.POWER_SERVICE);
mConnectivityManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
mR = c.getResources();
}
private static final int LINPHONE_VOLUME_STREAM = STREAM_VOICE_CALL;
private static final int dbStep = 4;
/** Called when the activity is first created. */
private final String mLPConfigXsd
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Linphone-Android最新版(2.0.3) (875个子文件)
proguard.cfg 1KB
.classpath 974B
.classpath 273B
package.html 16KB
android-support-v4.jar 330KB
gcm.jar 13KB
LinphoneManager.java 58KB
LinphoneActivity.java 46KB
InCallActivity.java 44KB
ChatFragment.java 33KB
LinphoneCoreImpl.java 31KB
SlidingDrawer.java 30KB
LinphoneCore.java 28KB
XMLRPCClient.java 22KB
LinphoneService.java 22KB
StatusFragment.java 21KB
EditContactFragment.java 20KB
PreferencesFragment.java 20KB
ApiFivePlus.java 17KB
HistoryFragment.java 15KB
HistorySimpleFragment.java 13KB
GL2JNIView.java 11KB
LinphoneUtils.java 11KB
WizardFragment.java 10KB
SetupActivity.java 10KB
BubbleChat.java 10KB
ContactsFragment.java 10KB
VideoCallFragment.java 10KB
Compatibility.java 9KB
AccountPreferencesFragment.java 9KB
ChatStorage.java 9KB
ChatListFragment.java 9KB
ContactHelper.java 9KB
PreferencesListFragment.java 9KB
TutorialBuddyStatus.java 8KB
LinphoneCall.java 8KB
AndroidVideoWindowImpl.java 7KB
AndroidVideoApi5JniWrapper.java 7KB
SerializerHandler.java 7KB
TutorialRegistration.java 7KB
ContactFragment.java 6KB
IncomingCallActivity.java 6KB
DialerFragment.java 6KB
LinphoneCallImpl.java 6KB
AndroidVideoApi9JniWrapper.java 6KB
TutorialChatRoom.java 6KB
LinphoneProxyConfig.java 5KB
HistoryDetailFragment.java 5KB
TutorialHelloWorld.java 5KB
LinphoneCoreListener.java 5KB
LinphoneCoreFactoryImpl.java 5KB
LinphoneProxyConfigImpl.java 5KB
LinphoneCallStats.java 4KB
Digit.java 4KB
Base64.java 4KB
Hacks.java 4KB
EchoCancellerCalibrationFragment.java 4KB
ApiNinePlus.java 4KB
LinphoneFriend.java 4KB
AddressText.java 4KB
LinphoneSliders.java 4KB
CallManager.java 4KB
Version.java 4KB
LinphoneCallStatsImpl.java 4KB
TutorialBuddyStatusActivity.java 4KB
LinphoneCoreFactory.java 4KB
LinphoneLauncherActivity.java 3KB
WizardConfirmFragment.java 3KB
LinphoneCallParamsImpl.java 3KB
LinphoneCallParams.java 3KB
TutorialRegistrationActivity.java 3KB
Log.java 3KB
LinphoneSimpleListener.java 3KB
XMLUtil.java 3KB
CallButton.java 3KB
StructSerializer.java 3KB
RemoteProvisioning.java 3KB
AudioCallFragment.java 3KB
ApiElevenPlus.java 3KB
TutorialHelloWorldActivity.java 3KB
TutorialChatRoomActivity.java 3KB
LinphoneAddressImpl.java 3KB
AndroidVideoApi8JniWrapper.java 3KB
ResponseParser.java 3KB
BandwidthManager.java 3KB
LinphoneCallLog.java 3KB
ApiSixteenPlus.java 3KB
LinphoneFriendImpl.java 3KB
OnlineStatus.java 3KB
GCMService.java 3KB
LinphoneAuthInfo.java 3KB
AndroidCameraConfiguration.java 3KB
LinphoneAuthInfoImpl.java 3KB
Numpad.java 3KB
FragmentsAvailable.java 3KB
Call.java 3KB
ApiEightPlus.java 2KB
LinphoneChatMessage.java 2KB
MenuFragment.java 2KB
Contact.java 2KB
共 875 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
cdy2143
- 粉丝: 15
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页