如何以编程方式从viber拨打电话

时间:2018-01-25 08:06:29

标签: android phone-call viber

我想以编程方式从我的应用程序拨打电话到Viber。我知道这个问题多次问过。但事实上,现在都没有(在新版本中)。

我试过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但找不到任何内容。如果有人知道如何在较新版本中执行此操作将对许多开发人员有所帮助。

1 个答案:

答案 0 :(得分:0)

尝试以下方法

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