Незабаром Android дозволить програмам передавати аудіо дзвінків із телефону на планшет

Нова бібліотека програмного забезпечення дозволяє програмам передавати VoIP-дзвінки з вашого телефону на планшет. Ось як це працює.

Google нарешті повернувся до обговорення планшетів із Піксельний планшет, домашній розважальний пристрій, який одночасно виконує функції розумного домашнього центру. У його огляд планшета Pixel, Бен Сін із XDA каже, що це «найкраще програмне забезпечення для планшетів Android», яке він коли-небудь тестував. Це, безсумнівно, приємно почути, тому що, сподіваюся, робота з програмним забезпеченням лише покращиться, оскільки планшет отримає нові функції через оновлення ОС і програм. Однією з таких функцій, яку він може отримати, є можливість транслювати або переадресовувати виклики з вашого телефону на планшет.

Уявіть, що ви вдома бігаєте по домашньому господарству або лежите на дивані перед телевізором, коли вам дзвонить кохана людина з Google Meet. Звичайно, ви можете прийняти дзвінок, тримаючи телефон у руці, але якщо перенести його на планшет, ви отримаєте набагато більший дисплей і кращі динаміки. Передавання мультимедійних даних може бути таким же простим, як натискання кнопки «cast» у програмі та вибір планшета (це Наразі працює лише з планшетом Pixel, оскільки це єдиний планшет Android, який підтримує дію як Cast приймач). На Android 13+ ви навіть можете передавати медіа на пристрій для трансляції поза програмою

через комутатор виводу ОС. Згодом ви навіть зможете транслювати виклики Google Meet зі свого телефону на планшет. І все це завдяки новій бібліотеці Telecom Jetpack від Google.

Під час "створення майбутнього Android» на Google I/O 2023 на початку цього року компанія Google оголосила про випуск нової бібліотеки Jetpack під назвою «Telecom», яка спрощує поверхню API для інтеграції телекомунікаційного стеку, а також робить можливими нові функції, такі як безперебійне перемикання/маршрутизація аудіо та виклики через VoIP передача. Зокрема, інженер зі зв’язків із розробниками Ден Гелпін сказав наступне:

«В іншому прикладі спеціально створених API ми випускаємо нову бібліотеку Jetpack, яка підтримує пов’язані з викликами фонову роботу, спрощує службу API телекомунікаційного стеку та забезпечує зворотну сумісність для нещодавно випущених особливості. Він включає підтримку безперебійного перемикання та маршрутизації аудіо, а також переадресацію викликів для додатків VoIP, використовуючи SDK для різних пристроїв».

The SDK для різних пристроїв, для тих, хто не в курсі, надає API, які спрощують виявлення пристроїв поблизу, пробудження пристрою, безпечний зв’язок і сеанси з кількома пристроями через Bluetooth, Wi-Fi і надшироку смугу. Про це було оголошено на минулорічній виставці Google I/O, у серпні того ж року він був у попередньому перегляді, але цього літа, очевидно, вийде зі статусу попереднього перегляду.

На одному зі слайдів про бібліотеку Telecom Jetpack показано скріншот виклику Google Meet із вікном перемикання вихідних даних Android угорі. Перемикач вихідних сигналів показує, що виклик Meet із «Джеймі Холл» триває, і дає користувачеві можливість вибору щоб продовжити відтворення аудіо виклику на «цьому телефоні» або транслювати/передавати виклик на Pixel користувача планшет.

Зараз незрозуміло, чи є цей знімок екрана лише макетом, оскільки Google Meet ще не підтримує потокове передавання/переадресацію дзвінків у такий спосіб. Однак справа в тому, що бібліотека Telecom Jetpack робить це можливим в першу чергу і розробникам VoIP програми вже можуть використовувати цю функцію, оскільки початкова альфа-версія бібліотеки вже існує звільнений.

Була версія 1.0.0-alpha01 бібліотеки Core Telecom звільнений на Google I/O 10 травня 2023 року, і він «представляє API CallsManager, який програми VoIP можуть використовувати для інтеграції з телекомунікаційною системою на пристрої. Дзвінки, які сповіщаються на платформу, мають пріоритет виконання на передньому плані, видимість через Bluetooth, носіння і автомобільні пристрої, а також спрощена маршрутизація аудіо». Для пристроїв зі старими версіями Android (усі спосіб повернутися до Android 8.0 Oreo), API CallsManager «обгортає застарілий API ConnectionService».

Розробники додатків VoIP вже можуть поекспериментувати з цією функцією, оскільки початкова альфа-версія бібліотеки вже випущена.

The вихідний код для бібліотеки Telecom Jetpack надає додаткові відомості про те, що вона дозволяє. По-перше, він показує, що CallsManager API фактично дозволяє програмам VoIP «додавати свої дзвінки до системної служби Android Telecom», завдяки чому інші служби «розпізнають [їхні] виклики додатків VoIP», що призводить до «більш стабільного середовища». Наприклад, якщо виклик VoIP додано до телекомунікаційної системи, переносний пристрій може відповідати на вхідний виклик. По суті, носимий пристрій розглядатиме дзвінок VoIP як звичайний телефонний дзвінок, що означає, що функція керування дзвінками буде більш узгодженою на різних пристроях. Наразі для того, щоб VoIP-виклики навіть відображалися на деяких типах підключених переносних пристроїв, сповіщення про VoIP-дзвінок потрібно перенаправляти з телефону на переносний пристрій.

Програми, які інтегрують бібліотеку Telecom Jetpack, реєструють, які можливості вони підтримують. CAPABILITY_BASELINE означає, що додаток VoIP підтримує лише додавання викликів до телекомунікаційної системи; CAPABILITY_SUPPORTS_VIDEO_CALLING вказує, що програма VoIP має можливість здійснювати відеодзвінки; нарешті, CAPABILITY_SUPPORTS_CALL_STREAMING вказує, що програма VoIP підтримує потокове передавання викликів.

The різниця між потоковою передачею виклику та його переадресацією полягає в тому, що в першому випадку виклик все ще обробляється вихідний пристрій (наприклад, телефон), але медіа-аудіо та елементи керування «потікають» на пристрій-приймач (наприклад, планшет). На відміну від цього, переадресація виклику фактично передбачає повне переміщення виклику з пристрою-джерела на пристрій-приймач.

Я не знаю, чи Google планує оновити телефонний стек Android і/або свою основну програму набору номера для підтримки потокове передавання звичайних телефонних дзвінків, але я припускаю, що на час ця можливість буде обмежена дзвінками VoIP буття.

Що сталося з функцією виклику поблизу?

Ще наприкінці 2021 року я виявив докази того, що Google готує a дзвінок поруч функція, яка дозволить вам зв’язати свій телефон, щоб «отримувати доступ до викликів із [вашого] телефону безпосередньо з [вашого] Nest hub [sic], коли ви перебуваєте поблизу». Незрозуміло, чи була ця функція призначений для фактичного Nest Hub або його близького родича Pixel Tablet, але в будь-якому випадку я не бачив жодних доказів того, що Google просувається вперед із цим функція.

Натомість, схоже, Google вирішив втілити цю функцію в життя за допомогою нових API платформи та вищезгаданої бібліотеки Jetpack. Компанія експериментувала з «виклик між пристроями" і "маршрутизація звуку зовнішнього виклику” API в Android 13, які були перероблені в API, які ми маємо зараз Android 14. Це також додано нова лише системна роль під назвою SYSTEM_CALL_STREAMING, яка надає її власнику CALL_AUDIO_INTERCEPTION і RECORD_AUDIO дозволи, два дозволи, які відповідно дозволяють програмі «отримувати доступ до аудіо вихідного та низхідного каналів поточного виклику» та записати аудіо. Варто зазначити, що сервіси Google Play визначено як виконавець ролі на телефонах Pixel під керуванням Android 14, припускаючи, що програма Play Services оброблятиме фактичну потокову передачу аудіо виклику, яку використовує бібліотека Jetpack Telecom рекламує.

Одна річ, яка мені незрозуміла, це те, чи буде потокове передавання викликів і переадресація викликів на всіх версіях Android, які підтримує бібліотека Jetpack. Сподіваємося, що незабаром Google зможе прояснити це, коли оголосить про доступність бібліотеки.