package com.example.hdllinphonesdkdemo; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.util.Log; 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 = "675982"; private static final String serverIP = "47.96.88.250:25060";//""116.62.26.215:35060";// proxy "sip:47.96.88.250:25060" private String account = ""; // mHDLSipInfo.sipAccount "1833327986738167809" string // uPqYE1vzBuggtUc2QfZlfsjDv // realm "47.96.88.250:25060" string // sipAccount "A932332998811174" string // sipPasswd "675982" string // sip:D31-11-1@139.159.157.75:47000 // 登录 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); }); Button btn = findViewById(R.id.test_btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // HDLLinphoneKit.getInstance().setMediaPlayerLooping(true); // HDLLinphoneKit.getInstance().playRingtone(); HDLLinphoneKit.getInstance().audioManager =(AudioManager) getSystemService(Context.AUDIO_SERVICE); Log.i("HDLLinphoneKit.getInstance().audioManager", HDLLinphoneKit.getInstance().audioManager.getRingerMode()+""); } }); Button btn2 = findViewById(R.id.test1_btn); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // HDLLinphoneKit.getInstance().stopRingtone(); HDLLinphoneKit.getInstance().setMediaPlayerLooping(false); } }); 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) { } @Override public void onCallAllRejection(){ } @Override public void onMissedCallsAction() { } }); } void showToast(String msg) { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } }