#java #android #sinch #android-sinch-api
Вопрос:
Я пытаюсь написать приложение voip с java в Android studio, при запуске приложения я получаю следующую ошибку:java.lang.Исключение IllegalStateException: SinchClient не запущен я ищу и читаю много вопросов об этом провале из-за моей проблемы, которую я не могу решить, может ли кто-нибудь помочь мне, что не так и чего мне не хватает в коде? вот мой код:
public class MainActivity2 extends AppCompatActivity { private static final String App_KEY = "c68436ff-de8a-458d-927b-7326fb97e799"; private static final String App_SECRET = "yw1N1cGUoEqw6EhdpAp/gg=="; private static final String ENVIROMENT = "ocra.api.sinch.com"; private Call call; private TextView callstate; private Button button; private String callerId , recipientId; private SinchClient sinchClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Intent intent = getIntent(); callerId = intent.getStringExtra("callerId"); recipientId = intent.getStringExtra("recipientId"); sinchClient = Sinch.getSinchClientBuilder() .context(this) .userId(App_KEY) .applicationKey(App_KEY) .environmentHost(ENVIROMENT) .build(); sinchClient.setSupportManagedPush(true); sinchClient.startListeningOnActiveConnection(); sinchClient.start(); sinchClient.getCallClient().addCallClientListener(new SinchCallClientListener()); button = findViewById(R.id.button); callstate = 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("HungUp"); /*CallClient callClient = sinchClient.getCallClient(); sinchClient.getCallClient().addCallClientListener(new SinchCallClientListener()); callClient.callPhoneNumber("09381430421");*/ }else { call.hangup(); } } }); } private class SinchCallListener implements CallListener { @Override public void onCallProgressing(Call call) { callstate.setText("ringing"); } @Override public void onCallEstablished(Call call) { callstate.setText("connect"); setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); } @Override public void onCallEnded(Call endedcall) { call = null; SinchError a = endedcall.getDetails().getError(); button.setText("call"); callstate.setText(""); setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE); } } private class SinchCallClientListener implements CallClientListener { @Override public void onIncomingCall(CallClient callClient, Call incomingcall) { call = (Call) incomingcall; Toast.makeText(getApplicationContext(), "incomin call", Toast.LENGTH_SHORT).show(); call.answer(); call.addCallListener(new SinchCallListener()); button.setText("Hung Up"); } }
}
Комментарии:
1. Пожалуйста, откройте билет, касающийся этого, с версией SDK, которую вы используете, и результатами использования справочных приложений или примеров приложений, которые поставляются с SDK, пытаясь сделать то же самое.