package com.example.hdllinphonesdkdemo; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.hdl.hdllinphonesdk.HDLLinphoneKit; import com.hdl.hdllinphonesdk.activity.HDLLinphoneMonitorActivity; import com.hdl.hdllinphonesdk.activity.HDLLinphoneReverseCallActivity; import com.hdl.hdllinphonesdk.callback.OnHDLLinphoneCallListener; public class LinphoneTestActivity extends Activity { private static final String password = "xFNxyrTIM8gLAOGDw3OiuzV5F"; private static final String serverIP = "47.96.88.250:25060";//""116.62.26.215:35060"; private String account = ""; // 登录 private EditText accountEdit; private Button loginBtn; // 呼叫 private EditText numberEdit; private Button callBtn,monitorBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_linphone_test); accountEdit = findViewById(R.id.account_et); loginBtn = findViewById(R.id.login_btn); loginBtn.setOnClickListener(view -> { // account = accountEdit.getText().toString().trim(); if (account.equals("")) return; // 登录 HDLLinphoneKit.getInstance().setAccountAndLogin(account, password, serverIP, HDLLinphoneKit.INTER_PHONE_TYPE_HDL); }); numberEdit = findViewById(R.id.number_et); callBtn = findViewById(R.id.call_btn); callBtn.setOnClickListener(view -> { String number = numberEdit.getText().toString().trim(); if (number.equals("")) return; // 呼叫 Intent intent = new Intent(LinphoneTestActivity.this, HDLLinphoneReverseCallActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(HDLLinphoneKit.KEY_SIP_ACCOUNT, number); startActivity(intent); // HDLLinphoneKit.getInstance().callTo(number, true); }); monitorBtn = findViewById(R.id.monitor_btn); monitorBtn.setOnClickListener(view -> { String number = numberEdit.getText().toString().trim(); if (number.equals("")) return; // 监控 HDLLinphoneKit.getInstance().callTo(number, true); Intent intent = new Intent(LinphoneTestActivity.this, HDLLinphoneMonitorActivity.class); startActivity(intent); }); //1.初始化SDK,并注册HDLLinphoneService HDLLinphoneKit.getInstance().initLinphone(this); //2.设置是否自动跳转呼叫,如果对接极光推送再弹出页面,这里要设置false HDLLinphoneKit.getInstance().setAutoJumpCallView(true); //3.监听呼叫和监控页面,用户操作的相关事件、接听、拒接、开锁等.... setOnHDLLinphoneCallListener(); } void setOnHDLLinphoneCallListener() { HDLLinphoneKit.getInstance().setOnHDLLinphoneCallListener(new OnHDLLinphoneCallListener() { @Override public void onAnswerAction() { showToast("接听"); } @Override public void onRejectCallAction() { showToast("拒接"); } @Override public void onUnlockAction() { // } @Override public void onHangUpAction(int callDuration) { showToast("挂断 通话时长:" + callDuration); } @Override public void onScreenshotSuccessfulAction(Bitmap image) { showToast("截图"); } @Override public void onIncomingCall(String s) { } }); } void showToast(String msg) { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } }