# Изменения между версиями SDK для Android
# Изменения в версии 3.0.0 по сравнению с 2.2.0
- Методы теперь сгруппированы по разным интерфейсам:
Например, было:
TrueConfSDK.getInstance().joinConf(confId);
TrueConfSDK.getInstance().logout();
Стало:
TrueConfSDK.getConferenceManager().joinConf(confId);
TrueConfSDK.getServerManager().logout();
2. Внесены существенные изменения в управление звуком:
удалены методы
isSpeakerMuted,getAudioDevices,onAudioPairChanged;для получения актуального списка устройств вывода звука необходимо выполнить запрос
requestAudioStateи реализовать методonAudioDeviceResponseиз интерфейсаAudioDeviceCallback. Также данный callback содержит методыonAudioDeviceChangedиonAudioDeviceUpdate;для изменения устройства вывода по умолчанию сначала необходимо выполнить запрос
requestAudioStateи только после этого установить устройство с помощью методаsetDefaultAudioDevice;во фрагментах
ConferenceFragment,IncomingCallFragmentиPlaceCallFragmentудалены методыonSwitchMicApplied,onMuteSpeakerApplied. Вместо них необходимо реализовать интерфейсAudioDeviceCallback;методы
muteMicrophone,muteSpeaker,changeAudioDeviceдолжны использоваться только во время конференции, иначе они не сработают из-за проверки.
3. Изменения в управлении видео:
добавлен метод
onVideoDeviceUpdateдля уведомления об изменении состояния камеры;во фрагментах
ConferenceFragment,IncomingCallFragmentиPlaceCallFragmentудалён методonSwitchCameraAppliedметод
muteCameraдолжен использоваться только во время конференции, иначе он не сработает из-за проверки.
4. Изменены пути до некоторых важных классов, например класс кастомной кнопки, а также TrueConfListener и CallCast.
Было:
com.trueconf.sdk.data.TCSDKExtraButton
com.trueconf.sdk.interfaces.TrueConfListener
com.trueconf.sdk.gui.activities.CallCast
Стало:
com.trueconf.sdk.presentation.views.TCExtraButton
com.trueconf.sdk.TrueConfListener
com.trueconf.sdk.presentation.activities.CallCast
5. Метод onStateChanged получил параметр FSM.State newState, который возвращает новый собственный статус (userOffline, userOnline, userBusy и т.д.). Список статусов представлен в таблице в разделе “Типы. UserPresStatus”.
6. Изменены некоторые названия иконок для кастомизации:
вместо
ic_selfie_iconтеперь используетсяic_rotate. Также на собственном видео добавлена иконка изменения размераic_minimize_fullscreen;иконки
shape_circle_background_red_pressedиshape_circle_background_redтеперь не используются;добавлена иконка
conf_button_backдля изменения заднего фона кнопок.
Полный список смотреть в 5 примере "Кастомизация интерфейса".
7. Библиотеки собраны при использовании Java 17 (было Java 11).
8. В составе SDK обновлены библиотеки OpenSSL 1.1.1w и SQLite 3.47.0.
9. Поддержано перетягивание собственного видео на экране конференции.
10. Изменены версии некоторых зависимостей, необходимых для работы SDK. Полный список перечислен в разделе интеграции с Android Studio.
# Изменения в версии 2.2.0 по сравнению с 1.3.3
- Теперь Android SDK распространяется через maven репозиторий с доступом по логину и паролю, которые выдаются по запросу через вашего менеджера. Необходимо в файле gradle в разделе repositories добавить maven репозиторий следующим образом:
maven {
credentials {
username 'username'
password 'password'
}
url 'https://sdk.trueconf.com/maven/repository/maven-public/'
}
2. Чтобы подключить SDK, необходимо в dependencies в файле настроек .gradle добавить 3 библиотеки:
api 'com.trueconf:trueconfsdk:2.2.0.101@aar'
api 'com.trueconf:media:2.2.0.101@aar'
api 'com.trueconf:jnicore:2.2.0.101@aar'
3. Минимальная версия Android теперь 7.0 (minSdkVersion 24).
4. Подключение SDK к классам проекта производится следующими строками:
import com.trueconf.sdk.TrueConfSDK;// to work with SDK methods
import com.trueconf.sdk.TrueConfListener; // to work with SDK events
5. Перед вызовом метода start необходимо вызвать метод registerApp и передать в него дочерний класс от Application, например:
public class TestApp extends Application {
@Override
public void onCreate() {
super.onCreate();
TrueConfSDK.getInstance().registerApp(this);
TrueConfSDK.getInstance().start("server.name", true);
...
}
}
6. Необходимо вызвать метод setFallbackActivity, в котором нужно указать класс Activity, к которому следует возвращаться в случае завершения звонка, например:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TrueConfSDK.getInstance().setFallbackActivity(MainActivity.class);
...
}
}
7. В файл манифеста теперь не нужно подключать activity com.vc.gui.activities.Call, com.vc.gui.activities.PermissionActivity и service com.vc.service.ExternalSchemeHelperService.
8. Расширены возможности кастомизации: добавлена возможность размещения собственного видео и видео участников конференции в отдельном Fragment, а также изменение размеров и координат видеоокон участников конференции. Подробности описаны в документации к 7 примеру.
9. Некоторые изменения в методах, а именно:
в методе
startубран параметрContext;добавлен метод
registerApp, в котором нужно указать дочерний класс отApplication;добавлен метод
setFallbackActivity, в котором нужно указать классActivity, к которому следует возвращаться в случае завершения звонка;добавлены методы для управления динамиками (
muteSpeaker,isSpeakerMuted,setDefaultSpeakerEnabled,getAudioDevices,getCurrentAudioDevice,setAudioDevice);onContactListUpdate- событие вTrueConfListener.UserStatusEventsCallback, которое приходит при загрузке списка контактов и их статусов после авторизации пользователем на сервере;добавлен новый интерфейс -
TrueConfListener.AudioDeviceCallback, который содержит 2 метода -onAudioPairChanged(вызывается при изменении устройства вывода) иonAudioDeviceListChanged(вызывается при изменении списка устройств);добавлены методы
setDefaultAudioEnabledиsetDefaultCameraEnabledдля установления дефолтного состояния микрофона и камеры соответственно;методы
microphoneMutedиcameraMutedпереименованы вisMicrophoneMutedиisCameraMutedсоответственно;убран флаг
trueConfSDKLogEnable, который включал расширенные логи SDK (теперь они пишутся всегда). Также убраны методыstartSavingLogsиstopSavingLogs, т.к. логи автоматически собираются в подкаталог./files/logs.