Я знаю, как открыть чат с номером в Viber: Как начать звонить в Viber из приложения для Android [новая версия]?
Но как мне открыть публичный чат? Есть идеи?
заранее спасибо
Я знаю, как открыть чат с номером в Viber: Как начать звонить в Viber из приложения для Android [новая версия]?
Но как мне открыть публичный чат? Есть идеи?
заранее спасибо
этот код Kotlin отлично работает для меня
val viberPackageName = "com.viber.voip"
val phone= "5757575757"
try {
activity?.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("viber://add?number=$phone")))
} catch (ex: ActivityNotFoundException) {
try {
activity?.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$viberPackageName")))
} catch (ex: ActivityNotFoundException) {
activity?.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$viberPackageName")))
}
}
Java-код
public void addViberNumber(Context context,String phone) {
String viberPackageName = "com.viber.voip";
try {
context.startActivity(new
Intent(Intent.ACTION_VIEW,
Uri.parse("viber://add?number="+phone)
)
);
} catch (ActivityNotFoundException ex) {
try {
context.startActivity
(new Intent(Intent.ACTION_VIEW,
Uri.parse("market://details?id=+" + viberPackageName))
);
} catch (ActivityNotFoundException exe) {
context.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://play.google.com/store/apps/details?id=" + viberPackageName)
)
);
}
}
}
Я использую com.google.i18n.phonenumbers.PhoneNumber
в качестве модели, которую я передал, но функциональность та же.
Для Viber вам понадобятся код страны и национальный номер в формате строки, а затем вы передали их в Uri
с URI намерения, указанным Viber.
Затем вы просто запускаете Intent.
private fun launchViberChat(phoneNumber: Phonenumber.PhoneNumber) {
val formatString = "${phoneNumber.countryCode}${phoneNumber.nationalNumber}"
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse("viber://add?number=$formatString")
).apply {
setPackage("com.viber.voip")
}
startActivity(intent)
}