【问题标题】:how to place call from viber programmatically如何以编程方式从 viber 拨打电话
【发布时间】:2018-01-25 08:06:28
【问题描述】:

我想以编程方式从我的应用程序向 Viber 发出呼叫。我知道这个问题在 SO 中被问了很多次。但事实上,它们现在都不起作用(在较新的版本中)。

我试过this SO post。但正如答案中提到的。用户必须经过两个步骤才能拨打电话。

我知道可以通过应用程序一键拨打电话。 (参考:this play store app 正在成功地从他们的应用程序向 viber 发出呼叫。)

目前,我正在使用这个

  String sphone = "+xxxxxxxxxx";
  Uri uri = Uri.parse("tel:" + Uri.encode(sphone));
  Intent intent = new Intent("android.intent.action.VIEW");
  intent.setClassName("com.viber.voip", "com.viber.voip.WelcomeActivity");
  intent.setData(uri);
  startActivity(intent);

但正如我提到的,用户必须通过两个步骤才能拨打电话。我已经尝试了所有解决方案,还阅读了viber docs,但找不到任何东西。如果有人知道如何在较新版本中执行此操作,将对许多开发人员有所帮助。

【问题讨论】:

  • @RonTLV 感谢您的评论。但请查看我提到的相关链接。您附加的评论链接和我提到的链接都是由同一用户询问的,而我的链接是该用户的最新链接

标签: android phone-call viber


【解决方案1】:

试试下面的方法

public void call(String dialNumber) {
    try{
    Intent callIntent = new Intent("android.intent.action.CALL_PRIVILEGED");
    callIntent.setData(Uri.parse("tel:" + dialNumber));
    startActivity(callIntent);
    }
    catch (Exception e) {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:" + dialNumber));
        startActivity(callIntent);
    }
}

这很关键:“android.intent.action.CALL_PRIVILEGED”
查找source here

【讨论】:

  • 感谢您的回答。但请查看我提到的相关链接。您附加的源链接和我提到的链接都是由同一用户询问的,而我的链接是该用户的最新链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多