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.TextView; import android.widget.Toast; import com.hdl.hdllinphonesdk.HDLLinphoneKit; import com.hdl.hdllinphonesdk.activity.HDLLinphoneIntercomActivity; import com.hdl.hdllinphonesdk.activity.HDLLinphoneMonitorActivity; import com.hdl.hdllinphonesdk.callback.OnHDLLinphoneCallListener; import com.hdl.hdllinphonesdk.core.service.HDLLinphoneService; import com.hdl.hdllinphonesdk.utils.HDLLog; import org.linphone.core.Core; import org.linphone.core.ProxyConfig; public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private TextView mTextView,mTextView2,mTextView3,mTextView4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.tv_hello); mTextView2 = findViewById(R.id.mTextView2); mTextView3 = findViewById(R.id.mTextView3); mTextView4 = findViewById(R.id.mTextView4); mTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // startActivity(HDLLinphoneMonitorActivity.class); // EasyLinphone.callTo("0000",true); // EasyLinphone.setAccountAndLogin("44 EasyLinphone.setAccountAndLogin("4444", "85521566", "116.62.26.215:5060");44", "85521566", "116.62.26.215:5060"); // {"data": "{\"sipPassword\":\"8ec02ce0\",\"sipAccount\":\"61723164995710}} // {"data": "{\"sipPassword\":\"cc6d73c1\",\"sipAccount\":\"61723164995779}} // EasyLinphone.setAccountAndLogin("61723164995710", "8ec02ce0", "47.94.42.230:25060"); // HDLLinphoneKit.getInstance().setAccountAndLogin("61723164995710", "8ec02ce0", "sipproxy.ucpaas.com:25060"); // HDLLinphoneKit.getInstance().setAccountAndLogin("5555", "85521566", "116.62.26.215:5060"); // HDLLinphoneKit.getInstance().setAccountAndLogin("5555", "85521566", "test-gz.hdlcontrol.com:5060"); // HDLLinphoneKit.getInstance().setAccountAndLogin("6666", "85521566", "test-gz.hdlcontrol.com:5060"); HDLLinphoneKit.getInstance().setAccountAndLogin("7777", "85521566", "test-gz.hdlcontrol.com:35060"); // // HDLLinphoneKit.getInstance().setAccountAndLogin("8888", "85521566", "test-gz.hdlcontrol.com:5060"); // // HDLLinphoneKit.getInstance().setAccountAndLogin("4444", "85521566", "test-gz.hdlcontrol.com:5060"); } }); mTextView4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clearProxyConfig(); HDLLinphoneKit.getInstance().setAccountAndLogin("5555", "85521566", "test-gz.hdlcontrol.com:35060"); } }); mTextView2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // logoutLog(); // return; // HDLLinphoneKit.getInstance().callTo("61723164995779",true); // HDLcallTo("61723164995779",true); // HDLLinphoneKit.getInstance().callTo("1427186301744910338",true); HDLLinphoneKit.getInstance().callTo("5555",true); startActivity(HDLLinphoneMonitorActivity.class); } }); mTextView3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HDLLinphoneKit.getInstance().getCore().setNetworkReachable(true); // isOpen = !isOpen; // showToast("当前设置状态:"+isOpen); // HDLLinphoneKit.getInstance().getCore().enableVideoCapture(isOpen);//禁用手机摄像头视频采集 // //1.启用PCMA 8000 // PayloadType[] ptList = HDLLinphoneKit.getInstance().getCore().getAudioPayloadTypes(); // for (PayloadType pt : ptList) { //// HDLLog.i("payloadaudio", pt.getMimeType()); // if ((pt.getMimeType().equals("PCMA") || pt.getMimeType().equals("PCMU")) && pt.getClockRate() == 8000) { //// pt.enable(true); // HDLLog.i("payloadaudio true", pt.getMimeType() + ": "+ pt.getClockRate()+"HZ " + pt.enabled()); // } else { //// pt.enable(false); // HDLLog.i("payloadaudio false", pt.getMimeType() + ": "+ pt.getClockRate()+"HZ "+ pt.enabled()); // } // } // logout(); } }); HDLLinphoneKit.getInstance().initLinphone(this); HDLLinphoneKit.getInstance().setAutoJumpCallView(true); setOnHDLLinphoneCallListener(); } boolean isOpen; /** * 退出清空账号 * enableRegister false */ public void logout() { try { Core core = HDLLinphoneService.getCore(); if (core != null) { ProxyConfig[] configs = core.getProxyConfigList(); for (ProxyConfig config : configs) { if (config != null) { config.edit(); config.enableRegister(false); config.done(); } } // core.clearAllAuthInfo();//清除所有认证信息。 // core.clearProxyConfig();//从配置中删除所有代理。 } } catch (Exception e) { e.printStackTrace(); } } public void clearProxyConfig() { Core core = HDLLinphoneService.getCore(); if (core != null) { core.setDefaultProxyConfig(null); core.clearAllAuthInfo(); core.clearProxyConfig(); // core.refreshRegisters();//强制在下一次迭代时启动注册刷新 // core.ensureRegistered(); } } public void logoutLog() { try { Core core = HDLLinphoneService.getCore(); ProxyConfig[] configs = core.getProxyConfigList(); if(configs != null) { HDLLog.E("registrationState账户length" + configs.length); } for (ProxyConfig config : configs) { HDLLog.E("registrationState账户"+config.getIdentityAddress().getUsername()); } } catch (Exception e) { e.printStackTrace(); } } boolean openSuccess; void setOnHDLLinphoneCallListener(){ HDLLinphoneKit.getInstance().setOnHDLLinphoneCallListener( new OnHDLLinphoneCallListener() { @Override public void onAnswerAction() { showToast("接听"); // EasyLinphone.toggleMicro(true); } @Override public void onRejectCallAction() { showToast("拒接"); // EasyLinphone.hangUp(); } @Override public void onUnlockAction() { // HDLLinphoneKit.getInstance().getCore().clearAllAuthInfo(); // showToast("开锁"); // EasyLinphone.callTo("61723164995779",true); // openSuccess = !openSuccess; // if(openSuccess){ // HDLLinphoneKit.getInstance().onOpenSuccess(); // }else{ // HDLLinphoneKit.getInstance().onOpenError("设备不在线"); // } } @Override public void onHangUpAction(int callDuration) { showToast("挂断 通话时长:"+callDuration); // EasyLinphone.hangUp(); } @Override public void onScreenshotSuccessfulAction(Bitmap image) { showToast("截图"); } @Override public void onIncomingCall(String s) { } }); } /** * showToast */ private void showToast(String text) { Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); } public void startActivity(Class clazz) { Intent intent = new Intent(this, clazz); startActivity(intent); } }