Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Twilio音频客户端无法建立任何连接_Android_Twilio_Twilio Api - Fatal编程技术网

Android Twilio音频客户端无法建立任何连接

Android Twilio音频客户端无法建立任何连接,android,twilio,twilio-api,Android,Twilio,Twilio Api,我正在尝试与Twilio合作,但对Twilio服务的经验很少 我想在这里实现的就是使用Twilio号码从应用程序向注册号码拨打语音电话 这是我的客户端实现 public class AudioCallActivity extends AppCompatActivity implements Twilio.InitListener, View.OnClickListener { private static final int MIC_PERMISSION_REQUEST_CODE = 1; p

我正在尝试与Twilio合作,但对Twilio服务的经验很少

我想在这里实现的就是使用Twilio号码从应用程序向注册号码拨打语音电话

这是我的客户端实现

public class AudioCallActivity extends AppCompatActivity implements Twilio.InitListener, View.OnClickListener {

private static final int MIC_PERMISSION_REQUEST_CODE = 1;
private CoordinatorLayout coordinatorLayout;
private String contact;
private String name;
private String profile_pic;
private ImageView profile;
private TextView user;
private TextView timer;

private Device device;
private Connection connection;
private String TAG = AudioCallActivity.this.getClass().getSimpleName();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_audio_call);

    if (ActivityCompat.checkSelfPermission(AudioCallActivity.this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED &&
            ActivityCompat.checkSelfPermission(AudioCallActivity.this, Manifest.permission.MODIFY_AUDIO_SETTINGS) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(AudioCallActivity.this,
                new String[]{Manifest.permission.RECORD_AUDIO}, MIC_PERMISSION_REQUEST_CODE);
        ActivityCompat.requestPermissions(AudioCallActivity.this,
                new String[]{Manifest.permission.MODIFY_AUDIO_SETTINGS}, 2);
    }

    if (getIntent() != null) {
        contact = getIntent().getStringExtra("contact").trim();
        patient_name = getIntent().getStringExtra("name");
        profile_pic = getIntent().getStringExtra("profile_pic").trim();
        loadUI();
    } else AudioCallActivity.this.finish();
    if (!Twilio.isInitialized())
        Twilio.initialize(getApplicationContext(), this);

    coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorlayout);


}

private void loadUI() {
    profile = (ImageView) findViewById(R.id.profile_pic);
    ((Button) findViewById(R.id.end_call)).setOnClickListener(this);
    user = (TextView) findViewById(R.id.userName);
    timer = (TextView) findViewById(R.id.timer);
}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.end_call:
            if (connection != null)
                connection.disconnect();
            device.release();
            AudioCallActivity.this.finish();
            break;
    }
}

@Override
public void onInitialized() {
    user.setText("Calling " + name);
    new GlideOperations(getApplicationContext(), profile).glideImages(profile_pic);

    NetworkManager.getInstance(getApplicationContext()).StringRequest(TAG, new HashMap<String, String>(), AppConfig.CAPABILITY_TOKEN, new VolleyResponse<String>() {
        @Override
        public void success(String response) {
            if (response != null && !response.isEmpty()) {
                device = Twilio.createDevice(response, null);
                HashMap<String, String> param = new HashMap<>();
                param.put("PhoneNumber", "XXXXXXXXXX");
                if (connection == null) {
                    connection = device.connect(param, new ConnectionListener() {
                        @Override
                        public void onConnecting(Connection connection) {
                            Log.d(TAG, "Connecting...");
                        }

                        @Override
                        public void onConnected(Connection connection) {
                            timer.setVisibility(View.VISIBLE);
                            Log.d(TAG, "Connected");

                        }

                        @Override
                        public void onDisconnected(Connection connection) {
                            Log.d(TAG, "Disconnected");

                        }

                        @Override
                        public void onDisconnected(Connection connection, int i, String s) {

                        }
                    });
                }
            }
        }

        @Override
        public void error(VolleyError error) {
            Log.d(TAG, "VOLLEY ERROR");
        }
    }, Request.Method.POST);
}

@Override
public void onError(Exception e) {
    Toast.makeText(getApplicationContext(), "ERROR", Toast.LENGTH_SHORT).show();
    e.printStackTrace();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == MIC_PERMISSION_REQUEST_CODE && resultCode != RESULT_OK) {
        Snackbar snackbar = Snackbar.make(coordinatorLayout, "Lyphe Call need the following permission to operate.", Snackbar.LENGTH_LONG);
        snackbar.show();
    }
}

请告诉我哪里出了错。TIA实际上出了什么问题?有错误吗?请求URL似乎有一些额外的空间,因为它无法获取内容。哦,很酷,所以它被修复了。是的,但是你能帮我解决一个错误吗?我现在已经发帖了。twilio客户端sdk proguard问题到底出了什么问题?有错误吗?请求URL似乎有一些额外的空间,因为它无法获取内容。哦,很酷,所以它被修复了。是的,但是你能帮我解决一个错误吗?我现在已经发帖了。这与twilio客户端sdk proguard问题有关
require_once dirname(__FILE__) . "/include/config.php";

header('Content-type: text/xml');

$callerId = TWILO_NUMBER;
$number   = "XXXXXXX";

if (isset($_POST['PhoneNumber'])) {
    $number = htmlspecialchars($_POST['PhoneNumber']);
}
if (preg_match("/^[\d\+\-\(\) ]+$/", $number)) {
    $numberOrClient = "<Number>" . $number . "</Number>";
} else {
    $numberOrClient = "<Client>" . $number . "</Client>";
}
?>

<Response>
    <Dial callerId="<?php echo $callerId ?>">
        <?php echo $numberOrClient ?>
    </Dial>
</Response>