Как открыть публичный чат Viber из приложения для Android

Я знаю, как открыть чат с номером в Viber: Как начать звонить в Viber из приложения для Android [новая версия]?

Но как мне открыть публичный чат? Есть идеи?

заранее спасибо


person Erick Filho    schedule 28.11.2014    source источник


Ответы (3)


этот код 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")))
            }
        }
person Stanislav Tkach    schedule 30.07.2018

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)
                    )
            );
        }
    }
}
person Falah H. Abbas    schedule 11.08.2018
comment
Хотя этот фрагмент кода может быть решением, включение объяснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причины вашего предложения кода. - person Narendra Jadhav; 11.08.2018

Я использую 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)
}
person Morgan Koh    schedule 15.04.2020