Back to project page app-app-calling-android.
The source code is released under:
MIT License
If you think the Android project app-app-calling-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.sinch.apptoappcall; //from ww w.jav a 2 s .c o m import android.content.Intent; import android.media.AudioManager; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.sinch.android.rtc.PushPair; import com.sinch.android.rtc.Sinch; import com.sinch.android.rtc.SinchClient; import com.sinch.android.rtc.calling.Call; import com.sinch.android.rtc.calling.CallClient; import com.sinch.android.rtc.calling.CallClientListener; import com.sinch.android.rtc.calling.CallListener; import java.util.List; public class CallActivity extends ActionBarActivity { private Call call; private TextView callState; private SinchClient sinchClient; private Button button; private String callerId; private String recipientId; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.call); Intent intent = getIntent(); callerId = intent.getStringExtra("callerId"); recipientId = intent.getStringExtra("recipientId"); sinchClient = Sinch.getSinchClientBuilder() .context(this) .userId(callerId) .applicationKey("key") .applicationSecret("secret") .environmentHost("sandbox.sinch.com") .build(); sinchClient.setSupportCalling(true); sinchClient.startListeningOnActiveConnection(); sinchClient.start(); sinchClient.getCallClient().addCallClientListener(new SinchCallClientListener()); button = (Button) findViewById(R.id.button); callState = (TextView) findViewById(R.id.callState); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (call == null) { call = sinchClient.getCallClient().callUser(recipientId); call.addCallListener(new SinchCallListener()); button.setText("Hang Up"); } else { call.hangup(); } } }); } private class SinchCallListener implements CallListener { @Override public void onCallEnded(Call endedCall) { call = null; button.setText("Call"); callState.setText(""); setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE); } @Override public void onCallEstablished(Call establishedCall) { callState.setText("connected"); setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); } @Override public void onCallProgressing(Call progressingCall) { callState.setText("ringing"); } @Override public void onShouldSendPushNotification(Call call, List<PushPair> pushPairs) {} } private class SinchCallClientListener implements CallClientListener { @Override public void onIncomingCall(CallClient callClient, Call incomingCall) { call = incomingCall; call.answer(); call.addCallListener(new SinchCallListener()); button.setText("Hang Up"); } } }