Добрый день. Собственно занимаюсь написанием скрипта для автоматизации работы с Viber, поставлена передо мной задача, чтобы с помощью ADB открыть чат с пользователем (и сразу отправить сообщение) по номеру телефона. Не нажимая кнопок, а с помощью “Activity manager”.
Скачал манифест Viber и из полезного нашёл такое:
<intent-filter>
<action name="android.intent.action.SEND"></action>
<category name="android.intent.category.DEFAULT"></category>
<data scheme="smsto"></data>
<data scheme="sms"></data>
</intent-filter>
На основе информации на stackoverflow получилась такая команда:
adb shell "am start -a android.intent.action.SEND -c android.intent.category.DEFAULT -e smsto +<phone_number> -e sms hello -n com.viber.voip/.messages.ui.ConversationActivity"
Чат открывается, но пустой и с иконкой загрузки (колёсико) без информации, такое ощущение, что вайбер не получает параметр с номером телефона. Если изменить компонент (последний параметр), то просто открывается другая страница, к примеру главная, если указать “./HomeActivity”.
Зато команда
adb shell "am start -a android.intent.action.VIEW -d "viber://add?number=<phone_number>" com.viber.voip -S"
работает прекрасно, но к сожалению открывает страницу контакта, но не чата.
Сижу над задачей уже неделю, перерыл всё что было в сети, из самого полезного нарыл только функцию такую:
val intent = Intent(Intent.ACTION_SEND).apply {
`package` = "com.viber.voip"
data = Uri.parse("sms:$phoneNumber")
}
startActivity(intent)
На основе которой собственно и получилось составить ту команду, что я указал выше. Подозреваю, что возможно указываю в неправильной форме параметры.
Вдруг кто-то сталкивался с подобной задачей или знает в какую стороную копать в сети - буду очень рад любой помощи Потому что, сейчас топчусь на одном месте и вообще закончились идеи.