JLChen
2021-08-20 1b11947cc15245ae005a7cc8cc2f93c5660b0c23
2021-08-20 1.优化更新
9个文件已修改
204 ■■■■■ 已修改文件
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneIntercomActivity.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneMonitorActivity.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Jars/HDLLinphoneSDK-V1.0.1.aar 补丁 | 查看 | 原始文档 | blame | 历史
Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Properties/AssemblyInfo.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java
@@ -150,7 +150,7 @@
            @Override
            public void callEnd() {
                super.callEnd();
                context.sendBroadcast(new Intent(HDLLinphoneIntercomActivity.RECEIVE_FINISH_VIDEO_ACTIVITY));
//                context.sendBroadcast(new Intent(HDLLinphoneIntercomActivity.RECEIVE_FINISH_VIDEO_ACTIVITY));
            }
        });
@@ -275,9 +275,6 @@
                        config.done();
                    }
                }
                core.clearAllAuthInfo();//清除所有认证信息。
//                core.clearProxyConfig();//从配置中删除所有代理。注意:目前不能直接删所有代理,因为服务器上还是标记已注册
            }
        } catch (Exception e) {
            e.printStackTrace();
@@ -290,6 +287,7 @@
    public void clearProxyConfig(){
        Core core = HDLLinphoneService.getCore();
        if (core != null) {
            core.setDefaultProxyConfig(null);
            core.clearAllAuthInfo();//清除所有认证信息。
            core.clearProxyConfig();//从配置中删除所有代理。
        }
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneIntercomActivity.java
@@ -28,6 +28,10 @@
import com.hdl.hdllinphonesdk.utils.HDLImageUtils;
import com.hdl.hdllinphonesdk.utils.HDLLog;
import org.linphone.core.Call;
import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub;
/**
 * Linphone接听页面
 */
@@ -49,8 +53,8 @@
    private LinearLayout ll_video_lp_rendering;
    private TextureView video_lp_rendering;
    private TextureView video_lp_rendering2;
//    private TextView tv_lp_calltime;
    private Chronometer timer_lp_calltime ;
    //    private TextView tv_lp_calltime;
    private Chronometer timer_lp_calltime;
    private TextView tv_lp_calltime;
    //参数
@@ -58,6 +62,9 @@
    private int callTime;//通话时间
    private CountDownTimer mCountDownTimer;
    //Linphone
    private CoreListenerStub mCoreListener;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -92,13 +99,9 @@
            mCountDownTimer.cancel();
            mCountDownTimer = null;
        }
        onDestroyLinphone();
        if (mReceiver != null) {
            unregisterReceiver(mReceiver);
        }
        HDLLinphoneKit.getInstance().onDestroy();
        HDLLog.i(TAG,"onDestroy");
        HDLLog.i(TAG, "onDestroy");
    }
@@ -119,19 +122,19 @@
        video_lp_rendering = findViewById(R.id.video_lp_rendering);
        video_lp_rendering2 = findViewById(R.id.video_lp_rendering2);
//        tv_lp_calltime = findViewById(R.id.tv_lp_calltime);
        timer_lp_calltime = (Chronometer)findViewById(R.id.timer_lp_calltime);
        timer_lp_calltime = (Chronometer) findViewById(R.id.timer_lp_calltime);
        tv_lp_calltime = findViewById(R.id.tv_lp_calltime);
        setWidthHeightWithRatio(ll_video_lp_rendering,16,9);
        setWidthHeightWithRatio(ll_video_lp_rendering, 16, 9);
    }
    /**
     * initData
     */
    private void initData(){
    private void initData() {
        Bundle extras = getIntent().getExtras();
        if(extras != null){
            String titleName =  extras.getString(HDLLinphoneKit.KEY_TITLE_NAME);
            if(!TextUtils.isEmpty(titleName)){
        if (extras != null) {
            String titleName = extras.getString(HDLLinphoneKit.KEY_TITLE_NAME);
            if (!TextUtils.isEmpty(titleName)) {
                tv_lp_title.setText(titleName);
            }
        }
@@ -154,6 +157,7 @@
            view.setLayoutParams(layoutParams);
        }
    }
    /**
     * init OnClickListener
     */
@@ -169,7 +173,7 @@
    /**
     * 初始化开门回调事件
     */
    void initCallBack(){
    void initCallBack() {
        HDLLinphoneKit.getInstance().setOpenOpenDoorCallBack(new OnLPOpenDoorCallBack() {
            @Override
            public void onOpenSuccess() {
@@ -186,9 +190,9 @@
    /**
     * 初始化开锁屏蔽倒计时
     */
    void initCountDownTimer(){
    void initCountDownTimer() {
        mCountDownTimer = new CountDownTimer(10*1000, 1000) {
        mCountDownTimer = new CountDownTimer(10 * 1000, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                if (!HDLLinphoneIntercomActivity.this.isFinishing()) {
@@ -233,15 +237,14 @@
    private void onClickScreenshot() {
//        Bitmap img = HDLImageUtils.createViewBitmap(video_lp_rendering);
        Bitmap img = video_lp_rendering.getBitmap();
        boolean isSuccess =  HDLImageUtils.saveImageToGallery(this, img);
        boolean isSuccess = HDLImageUtils.saveImageToGallery(this, img);
        if(isSuccess){
        if (isSuccess) {
            showToast(getString(R.string.lp_saveToTheAlbumsStr));
        }else {
        } else {
            showToast(getString(R.string.lp_operationFailedStr));
        }
    }
    /**
@@ -264,7 +267,7 @@
            if (isAnswer) {
                //如果之前已经接听了,回调是挂断
                callTime = getTimerCallTime();
                HDLLog.i("callTime","callTime"+callTime);
                HDLLog.i("callTime", "callTime" + callTime);
                HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onHangUpAction(callTime);
            } else {
                //如果之前没接听了,回调是拒接
@@ -304,12 +307,14 @@
        iv_lp_unlock.setEnabled(false);
        startOpenDoorCountdown();
    }
    /**
     * 开启倒计时
     */
    void startOpenDoorCountdown() {
        mCountDownTimer.start();
    }
    /**
     * 通话记录开启倒计时
     */
@@ -317,12 +322,12 @@
        timer_lp_calltime.setBase(SystemClock.elapsedRealtime());//计时器清零
        timer_lp_calltime.start();
    }
    int getTimerCallTime(){
    int getTimerCallTime() {
        int temp0 = Integer.parseInt(timer_lp_calltime.getText().toString().split(":")[0]);
        int temp1 =Integer.parseInt(timer_lp_calltime.getText().toString().split(":")[1]);
        int temp1 = Integer.parseInt(timer_lp_calltime.getText().toString().split(":")[1]);
        return temp0 * 60 + temp1;
    }
    /****************封装常用方法********/
@@ -352,23 +357,46 @@
    }
    /**********LinPhone**********/
    void initLinphone(){
        IntentFilter intentFilter = new IntentFilter(RECEIVE_FINISH_VIDEO_ACTIVITY);
        mReceiver = new FinishVideoActivityReceiver();
        registerReceiver(mReceiver, intentFilter);
        HDLLinphoneKit.getInstance().setAndroidVideoWindow(video_lp_rendering, video_lp_rendering2);
    }
    /**
     * initLinphone
     */
    void initLinphone() {
        mCoreListener = new CoreListenerStub() {
            @Override
            public void onCallStateChanged(Core core, Call call, Call.State state, String message) {
                if (state == Call.State.End || state == Call.State.Released) {
                    // Once call is finished (end state), terminate the activity
                    // We also check for released state (called a few seconds later) just in case
                    // we missed the first one
                    showToast(getString(R.string.lp_endOfCallStr));
                    finish();
                }
            }
        };
    public class FinishVideoActivityReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            HDLLinphoneIntercomActivity.this.finish();
        Core core = HDLLinphoneKit.getInstance().getCore();
        // We need to tell the core in which to display what
        if (core != null) {
            core.setNativeVideoWindowId(video_lp_rendering);
            core.setNativePreviewWindowId(video_lp_rendering2);
            // Listen for call state changes
            core.addListener(mCoreListener);
        }
    }
    private FinishVideoActivityReceiver mReceiver;
    public static final String RECEIVE_FINISH_VIDEO_ACTIVITY = "receive_finish_video_activity";
    /**
     * onDestroyLinphone
     */
    void onDestroyLinphone(){
        Core core = HDLLinphoneKit.getInstance().getCore();
        if (core != null) {
            core.removeListener(mCoreListener);
            core.setNativeVideoWindowId(null);
            core.setNativePreviewWindowId(null);
        }
        video_lp_rendering = null;
        video_lp_rendering2 = null;
    }
}
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneMonitorActivity.java
@@ -27,6 +27,10 @@
import com.hdl.hdllinphonesdk.utils.HDLImageUtils;
import com.hdl.hdllinphonesdk.utils.HDLLog;
import org.linphone.core.Call;
import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub;
/**
*监视页面
 */
@@ -47,6 +51,9 @@
    private TextureView video_lp_rendering2;
    private CountDownTimer mCountDownTimer;
    //Linphone
    private CoreListenerStub mCoreListener;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -79,10 +86,7 @@
            mCountDownTimer = null;
        }
        if (mReceiver != null) {
            unregisterReceiver(mReceiver);
        }
        HDLLinphoneKit.getInstance().onDestroy();
        onDestroyLinphone();
        HDLLog.i(TAG,"onDestroy");
@@ -287,23 +291,44 @@
    }
    /**********LinPhone**********/
    void initLinphone(){
        IntentFilter intentFilter = new IntentFilter(RECEIVE_FINISH_VIDEO_ACTIVITY);
        mReceiver = new HDLLinphoneMonitorActivity.FinishVideoActivityReceiver();
        registerReceiver(mReceiver, intentFilter);
        HDLLinphoneKit.getInstance().setAndroidVideoWindow(video_lp_rendering, video_lp_rendering2);
    /**
     * initLinphone
     */
    void initLinphone() {
        mCoreListener = new CoreListenerStub() {
            @Override
            public void onCallStateChanged(Core core, Call call, Call.State state, String message) {
                if (state == Call.State.End || state == Call.State.Released) {
                    // Once call is finished (end state), terminate the activity
                    // We also check for released state (called a few seconds later) just in case
                    // we missed the first one
                    showToast(getString(R.string.lp_endMonitoringStr));
                    finish();
                }
            }
        };
        Core core = HDLLinphoneKit.getInstance().getCore();
        // We need to tell the core in which to display what
        if (core != null) {
            core.setNativeVideoWindowId(video_lp_rendering);
            core.setNativePreviewWindowId(video_lp_rendering2);
            // Listen for call state changes
            core.addListener(mCoreListener);
        }
    }
    /**
     * 页面关闭广播监听
     * onDestroyLinphone
     */
    public class FinishVideoActivityReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            HDLLinphoneMonitorActivity.this.finish();
    void onDestroyLinphone(){
        Core core = HDLLinphoneKit.getInstance().getCore();
        if (core != null) {
            core.removeListener(mCoreListener);
            core.setNativeVideoWindowId(null);
            core.setNativePreviewWindowId(null);
        }
        video_lp_rendering = null;
        video_lp_rendering2 = null;
    }
    private HDLLinphoneMonitorActivity.FinishVideoActivityReceiver mReceiver;
    public static final String RECEIVE_FINISH_VIDEO_ACTIVITY = "receive_finish_video_activity";
}
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml
@@ -12,6 +12,7 @@
    <string name="lp_unlockfailureStr">开锁失败</string>
    <string name="lp_callingStr">来电中...</string>
    <string name="lp_endOfCallStr">通话结束</string>
    <string name="lp_endMonitoringStr">监视结束</string>
    <string name="lp_screenshotStr">截图</string>
    <string name="lp_unlockStr">开锁</string>
    <string name="lp_outdoorUnitStr">室外机</string>
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml
@@ -11,6 +11,7 @@
    <string name="lp_unlockfailureStr">Unlock failure</string>
    <string name="lp_callingStr">Incoming call</string>
    <string name="lp_endOfCallStr">End of call</string>
    <string name="lp_endMonitoringStr">End of the monitor</string>
    <string name="lp_screenshotStr">Screenshot</string>
    <string name="lp_unlockStr">Unlock</string>
    <string name="lp_outdoorUnitStr">Outdoor unit</string>
HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar
Binary files differ
HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java
@@ -66,6 +66,7 @@
        mTextView4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clearProxyConfig();
                HDLLinphoneKit.getInstance().setAccountAndLogin("5555", "85521566", "test-gz.hdlcontrol.com:5060");
            }
        });
@@ -74,12 +75,12 @@
            @Override
            public void onClick(View v) {
                logoutLog();
                return;
////                HDLLinphoneKit.getInstance().callTo("61723164995779",true);
////                HDLcallTo("61723164995779",true);
//                HDLLinphoneKit.getInstance().callTo("1427186301744910338",true);
//                startActivity(HDLLinphoneMonitorActivity.class);
//                logoutLog();
//                return;
//                HDLLinphoneKit.getInstance().callTo("61723164995779",true);
//                HDLcallTo("61723164995779",true);
                HDLLinphoneKit.getInstance().callTo("1427186301744910338",true);
                startActivity(HDLLinphoneMonitorActivity.class);
            }
@@ -88,7 +89,7 @@
        mTextView3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HDLLinphoneKit.getInstance().logout();
                logout();
            }
        });
@@ -115,7 +116,7 @@
                        config.done();
                    }
                }
                core.clearAllAuthInfo();//清除所有认证信息。
//                core.clearAllAuthInfo();//清除所有认证信息。
//                core.clearProxyConfig();//从配置中删除所有代理。
            }
        } catch (Exception e) {
@@ -123,6 +124,18 @@
        }
    }
    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();
Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Jars/HDLLinphoneSDK-V1.0.1.aar
Binary files differ
Shared.Droid.HDLLinphone/Shared.Droid.HDLLinphone/Properties/AssemblyInfo.cs
@@ -22,5 +22,5 @@
//      Minor Version 
//      Build Number
//      Revision
[assembly: AssemblyVersion("1.0.1.3")]
[assembly: AssemblyFileVersion("1.0.1.3")]
[assembly: AssemblyVersion("1.0.1.5")]
[assembly: AssemblyFileVersion("1.0.1.5")]