package com.example.hdllinphonesdkdemo;
|
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.graphics.Bitmap;
|
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 = "Wc7SeYXb0oyGOXVvtUYtju2Dy";
|
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 = "";
|
|
// 登录
|
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();
|
|
}
|
});
|
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();
|
}
|
}
|