From 5dc625a64cf58d798929f22c3073cd06b837f87a Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 25 十一月 2021 16:44:57 +0800
Subject: [PATCH] 2021-11-25 1.更新

---
 HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml                                                |    1 
 HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml                                                   |    1 
 HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneReverseCallActivity.java |  459 +++++++++++++++++++++++++++++++++++++++++++++
 HDLLinphoneSDKDemoNew/HDLLinphoneSDK/build.gradle                                                                      |    1 
 HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml                                                      |   10 
 HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java                               |   53 +++--
 HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java                          |    1 
 HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar                                                               |    0 
 HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java         |   18 +
 9 files changed, 510 insertions(+), 34 deletions(-)

diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/build.gradle b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/build.gradle
index 740881d..7ea3cc5 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/build.gradle
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/build.gradle
@@ -49,6 +49,7 @@
         url "https://linphone.org/maven_repository"
     }
 }
+
 dependencies {
 //    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
     implementation 'com.android.support:appcompat-v7:28.0.0'
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml
index 9d2a941..16b10b4 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml
@@ -4,16 +4,13 @@
 
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.CAMERA" /> <!-- 璇煶閫氳瘽鏉冮檺 -->
     <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 鍏嶆彁鏉冮檺 -->
-    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
-    <!--淇濆瓨鎴浘鍒扮浉鍐�-->
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <!-- 淇濆瓨鎴浘鍒扮浉鍐� -->
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
-    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
     <uses-permission android:name="android.permission.VIBRATE" />
 
     <uses-feature
@@ -24,7 +21,8 @@
         android:allowBackup="true"
         android:label="@string/app_name"
         android:supportsRtl="true">
-        <activity android:name=".activity.HDLLinphoneMonitorActivity"></activity>
+        <activity android:name=".activity.HDLLinphoneReverseCallActivity"></activity>
+        <activity android:name=".activity.HDLLinphoneMonitorActivity" />
         <activity android:name=".activity.HDLLinphoneIntercomActivity" />
 
         <service android:name=".core.service.HDLLinphoneService" />
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java
index 7473487..8f82f11 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java
@@ -32,6 +32,7 @@
  */
 public class HDLLinphoneKit {
     public static final String KEY_TITLE_NAME = "lpTitleName";
+    public static final String KEY_SIP_ACCOUNT = "lpSipAccount";
     public static final String HDLLinphoneKitNAME = "HDLLinphoneKit";
     private volatile static HDLLinphoneKit instance;
     private Context viewContext;
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneReverseCallActivity.java b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneReverseCallActivity.java
new file mode 100644
index 0000000..d0b31f5
--- /dev/null
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneReverseCallActivity.java
@@ -0,0 +1,459 @@
+package com.hdl.hdllinphonesdk.activity;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.media.AudioAttributes;
+import android.os.Build;
+import android.os.CountDownTimer;
+import android.os.SystemClock;
+import android.os.Vibrator;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.DisplayMetrics;
+import android.view.TextureView;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.Chronometer;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.hdl.hdllinphonesdk.HDLLinphoneKit;
+import com.hdl.hdllinphonesdk.R;
+import com.hdl.hdllinphonesdk.callback.OnLPOpenDoorCallBack;
+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;
+
+/**
+ * 鍙嶅懠椤甸潰
+ */
+public class HDLLinphoneReverseCallActivity extends LPCheckPermissionsActivity implements View.OnClickListener {
+    private static final String TAG = "HDLLinphoneReverseCallActivity";
+
+    //鎺т欢
+    private TextView tv_lp_title;
+    private ImageView iv_lp_screenshot;
+    private ImageView iv_lp_unlock;
+
+    private ImageView iv_lp_hangUp;
+    private TextView tv_lp_hangUp;
+
+    private ImageView iv_lp_answer;
+    private TextView tv_lp_answer;
+    private RelativeLayout rl_lp_answerView;
+
+    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 boolean isAnswer;//鏄惁宸茬粡鎺ュ惉浜�
+    private int callTime;//閫氳瘽鏃堕棿
+    //鍊掕鏃�
+    private CountDownTimer mCountDownTimer;
+    /**
+     * 鎵嬫満鎸姩鍣�
+     */
+    private Vibrator mVibrator;
+
+    //Linphone
+    private CoreListenerStub mCoreListener;
+
+    private String deviceSipAccount;//璁惧SIP璐﹀彿
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+//                WindowManager.LayoutParams.FLAG_FULLSCREEN);
+        setContentView(R.layout.activity_hdllinphone_intercom);
+        initView();
+        initData();
+        initOnClick();
+        initCallBack();
+        initCountDownTimer();
+        initLinphone();
+        initVibrator();
+
+    }
+
+    /**
+     * onDestroy
+     */
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        //1.鎸傛柇
+        HDLLinphoneKit.getInstance().hangUp();
+        //2.鏆傚仠璁℃椂
+        if (null != timer_lp_calltime) {
+            timer_lp_calltime.stop();
+        }
+        //3.娉ㄩ攢callBack
+        HDLLinphoneKit.getInstance().setOpenOpenDoorCallBack(null);
+        //4.鍙栨秷闇囧姩鍣�
+        cancelVibrator();
+        //5.
+        if (mCountDownTimer != null) {
+            mCountDownTimer.cancel();
+            mCountDownTimer = null;
+        }
+        //5.
+        onDestroyLinphone();
+
+        HDLLog.i(TAG, "onDestroy");
+
+    }
+
+
+    /**
+     * initView
+     */
+    private void initView() {
+        tv_lp_title = findViewById(R.id.tv_lp_title);
+        iv_lp_screenshot = findViewById(R.id.iv_lp_screenshot);
+        iv_lp_unlock = findViewById(R.id.iv_lp_unlock);
+        iv_lp_hangUp = findViewById(R.id.iv_lp_hangUp);
+        tv_lp_hangUp = findViewById(R.id.tv_lp_hangUp);
+        iv_lp_answer = findViewById(R.id.iv_lp_answer);
+        tv_lp_answer = findViewById(R.id.tv_lp_answer);
+        rl_lp_answerView = findViewById(R.id.rl_lp_answerView);
+        ll_video_lp_rendering = findViewById(R.id.ll_video_lp_rendering);
+        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);
+        tv_lp_calltime = findViewById(R.id.tv_lp_calltime);
+        setWidthHeightWithRatio(ll_video_lp_rendering, 16, 9);
+
+
+    }
+
+    /**
+     * initData
+     */
+    private void initData() {
+        Bundle extras = getIntent().getExtras();
+        if (extras != null) {
+            String titleName = extras.getString(HDLLinphoneKit.KEY_TITLE_NAME);
+            if (!TextUtils.isEmpty(titleName)) {
+                tv_lp_title.setText(titleName);
+            }
+
+            deviceSipAccount = extras.getString(HDLLinphoneKit.KEY_SIP_ACCOUNT);
+        }
+    }
+
+    /**
+     * 鎸囧畾灞忓箷瀹藉害 鏍规嵁瀹介珮姣旇缃帶浠跺楂�
+     */
+    public void setWidthHeightWithRatio(View view, int widthRatio, int heightRatio) {
+        DisplayMetrics outMetrics = new DisplayMetrics();
+        getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
+        int width = outMetrics.widthPixels;
+
+        if (width <= 0) width = view.getWidth();
+        int height = width * heightRatio / widthRatio;
+        ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
+        if (layoutParams != null) {
+            layoutParams.height = height;
+            layoutParams.width = width;
+            view.setLayoutParams(layoutParams);
+        }
+    }
+
+    /**
+     * init OnClickListener
+     */
+    private void initOnClick() {
+        iv_lp_screenshot.setOnClickListener(this);
+        iv_lp_unlock.setOnClickListener(this);
+        iv_lp_hangUp.setOnClickListener(this);
+        tv_lp_hangUp.setOnClickListener(this);
+        iv_lp_answer.setOnClickListener(this);
+        tv_lp_answer.setOnClickListener(this);
+    }
+
+    /**
+     * 鍒濆鍖栧紑闂ㄥ洖璋冧簨浠�
+     */
+    void initCallBack() {
+        HDLLinphoneKit.getInstance().setOpenOpenDoorCallBack(new OnLPOpenDoorCallBack() {
+            @Override
+            public void onOpenSuccess() {
+                setOpenDoorSuccess();
+            }
+
+            @Override
+            public void onOpenError(String errorMes) {
+                showToast(getString(R.string.lp_unlockfailureStr) + errorMes);
+            }
+        });
+    }
+
+    /**
+     * 鍒濆鍖栧紑閿佸睆钄藉�掕鏃�
+     */
+    void initCountDownTimer() {
+
+        mCountDownTimer = new CountDownTimer(10 * 1000, 1000) {
+            @Override
+            public void onTick(long millisUntilFinished) {
+                if (!HDLLinphoneReverseCallActivity.this.isFinishing()) {
+
+                }
+            }
+
+            /**
+             *鍊掕鏃剁粨鏉熷悗璋冪敤鐨�
+             */
+            @Override
+            public void onFinish() {
+//                showToast("寮�閿乷nFinish");
+                iv_lp_unlock.setEnabled(true);
+            }
+
+        };
+//
+    }
+
+    @Override
+    public void onClick(View view) {
+        int id = view.getId();
+        if (id == R.id.iv_lp_screenshot) {
+            //鎴浘
+            onClickScreenshot();
+        } else if (id == R.id.iv_lp_unlock) {
+            //寮�閿�
+            onClickUnlock();
+        } else if (id == R.id.iv_lp_hangUp || id == R.id.tv_lp_hangUp) {
+            //鎸傛柇
+            onClickHangUp();
+        } else if (id == R.id.iv_lp_answer || id == R.id.tv_lp_answer) {
+            //鎺ュ惉
+            onClickAnswer();
+        }
+    }
+
+    /**
+     * 鎴浘鐐瑰嚮浜嬩欢
+     */
+    private void onClickScreenshot() {
+//        Bitmap img = HDLImageUtils.createViewBitmap(video_lp_rendering);
+        Bitmap img = video_lp_rendering.getBitmap();
+        boolean isSuccess = HDLImageUtils.saveImageToGallery(this, img);
+
+        if (isSuccess) {
+            showToast(getString(R.string.lp_saveToTheAlbumsStr));
+        } else {
+            showToast(getString(R.string.lp_operationFailedStr));
+        }
+    }
+
+
+    /**
+     * 寮�閿佺偣鍑讳簨浠�
+     */
+    private void onClickUnlock() {
+        if (HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener() != null) {
+            HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onUnlockAction();
+        }
+    }
+
+    /**
+     * 鎸傛柇鐐瑰嚮浜嬩欢
+     */
+    private void onClickHangUp() {
+        //2.鍥炶皟浜嬩欢
+        if (HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener() != null) {
+            if (isAnswer) {
+                //濡傛灉涔嬪墠宸茬粡鎺ュ惉浜嗭紝鍥炶皟鏄寕鏂�
+                callTime = getTimerCallTime();
+                HDLLog.i("callTime", "callTime" + callTime);
+                HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onHangUpAction(callTime);
+            } else {
+                //濡傛灉涔嬪墠娌℃帴鍚簡锛屽洖璋冩槸鎷掓帴
+                HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onRejectCallAction();
+            }
+        }
+        //2.椤甸潰鍏抽棴
+        finish();
+    }
+
+    /**
+     * 鎺ュ惉鎸夐挳鐐瑰嚮浜嬩欢
+     */
+    private void onClickAnswer() {
+        //1.鎺ュ惉 鍙嶅懠
+        if (TextUtils.isEmpty(deviceSipAccount)) {
+            getString(R.string.lp_sipAccount_null);
+            return;
+        }
+        HDLLinphoneKit.getInstance().callTo(deviceSipAccount, true);
+
+        //2.鍙栨秷闇囧姩
+        cancelVibrator();
+        //3.淇敼UI
+        isAnswer = true;
+        tv_lp_hangUp.setText(getString(R.string.lp_hangupStr));
+        setViewGone(rl_lp_answerView);
+        setViewGone(tv_lp_calltime);
+        setViewVisible(timer_lp_calltime);
+        startCallTimeCountdown();
+        //鎺ュ惉閫氱煡
+        if (HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener() != null) {
+            HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onAnswerAction();
+        }
+    }
+
+    /****************寮�閿佹垚鍔�********/
+
+    /**
+     * 寮�閿佹垚鍔熷悗锛�10s鍐呬笉鑳介噸澶嶅紑閿�
+     * 寮�閿佹寜閽鐢紝鍊掕鏃剁粨鏉熷悗閲嶆柊鍏佽鐐瑰嚮
+     */
+    void setOpenDoorSuccess() {
+        showToast(getString(R.string.lp_unlockSuccessfullyStr));
+        iv_lp_unlock.setEnabled(false);
+        startOpenDoorCountdown();
+    }
+
+    /**
+     * 寮�鍚�掕鏃�
+     */
+    void startOpenDoorCountdown() {
+        mCountDownTimer.start();
+    }
+
+    /**
+     * 閫氳瘽璁板綍寮�鍚�掕鏃�
+     */
+    void startCallTimeCountdown() {
+        timer_lp_calltime.setBase(SystemClock.elapsedRealtime());//璁℃椂鍣ㄦ竻闆�
+        timer_lp_calltime.start();
+    }
+
+    int getTimerCallTime() {
+        int temp0 = Integer.parseInt(timer_lp_calltime.getText().toString().split(":")[0]);
+        int temp1 = Integer.parseInt(timer_lp_calltime.getText().toString().split(":")[1]);
+        return temp0 * 60 + temp1;
+    }
+
+
+    /****************灏佽甯哥敤鏂规硶********/
+    /**
+     * showToast
+     */
+    private void showToast(String text) {
+        Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
+    }
+
+    /**
+     * setViewVisible
+     */
+    private static void setViewVisible(View view) {
+        if (view.getVisibility() != View.VISIBLE) {
+            view.setVisibility(View.VISIBLE);
+        }
+    }
+
+    /**
+     * setViewGone
+     */
+    private static void setViewGone(View view) {
+        if (view.getVisibility() != View.GONE) {
+            view.setVisibility(View.GONE);
+        }
+    }
+
+    /**********LinPhone**********/
+    /**
+     * 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();
+                }
+            }
+        };
+
+        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);
+            core.enableMic(true);//寮�鍚害鍏嬮
+        }
+
+    }
+
+    /**
+     * 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;
+    }
+
+
+    /**
+     * 鍒濆鍖栭渿鍔ㄥ櫒
+     */
+    void initVibrator() {
+        mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
+        if (mVibrator.hasVibrator()) {
+            long[] patern = {0, 1000, 1000};
+            AudioAttributes audioAttributes = null;
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                audioAttributes = new AudioAttributes.Builder()
+                        .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
+                        .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE) //key
+                        .build();
+                mVibrator.vibrate(patern, 1, audioAttributes);
+            } else {
+                mVibrator.vibrate(patern, 1);
+            }
+        } else {
+            HDLLog.E("褰撳墠鎵嬫満娌℃湁闇囧姩鍣�");
+        }
+    }
+
+    /**
+     * 鍏抽棴闇囧姩鍣�
+     */
+    void cancelVibrator(){
+        if(mVibrator != null){
+            mVibrator.cancel();
+            mVibrator = null;
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java
index 9a7bbbf..e84e103 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java
@@ -175,12 +175,18 @@
     public void onDestroy() {
         removeAllCallback();
         logout();
-        mCore.removeListener(mCoreListener);
-        mTimer.cancel();
-        mCore.stop();
-        // A stopped Core can be started again
-        // To ensure resources are freed, we must ensure it will be garbage collected
-        mCore = null;
+
+        if(mTimer != null) {
+            mTimer.cancel();
+        }
+
+        if(mCore != null){
+            mCore.removeListener(mCoreListener);
+            mCore.stop();
+            // A stopped Core can be started again
+            // To ensure resources are freed, we must ensure it will be garbage collected
+            mCore = null;
+        }
         // Don't forget to free the singleton as well
         sInstance = null;
 
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml
index d0ee279..97858f6 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml
@@ -16,4 +16,5 @@
     <string name="lp_screenshotStr">鎴浘</string>
     <string name="lp_unlockStr">寮�閿�</string>
     <string name="lp_outdoorUnitStr">瀹ゅ鏈�</string>
+    <string name="lp_sipAccount_null">鎺ュ惉澶辫触锛岃澶囦笉瀛樺湪</string>
 </resources>
\ No newline at end of file
diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml
index 8269c55..a39640a 100644
--- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml
+++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml
@@ -15,4 +15,5 @@
     <string name="lp_screenshotStr">Screenshot</string>
     <string name="lp_unlockStr">Unlock</string>
     <string name="lp_outdoorUnitStr">Outdoor unit</string>
+    <string name="lp_sipAccount_null">Failed to answer the call. The device does not exist.</string>
 </resources>
diff --git a/HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar b/HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar
index 022291c..f02e75e 100644
--- a/HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar
+++ b/HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar
Binary files differ
diff --git a/HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java b/HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java
index 666b384..5388edf 100644
--- a/HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java
+++ b/HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java
@@ -11,6 +11,7 @@
 import com.hdl.hdllinphonesdk.HDLLinphoneKit;
 import com.hdl.hdllinphonesdk.activity.HDLLinphoneIntercomActivity;
 import com.hdl.hdllinphonesdk.activity.HDLLinphoneMonitorActivity;
+import com.hdl.hdllinphonesdk.activity.HDLLinphoneReverseCallActivity;
 import com.hdl.hdllinphonesdk.callback.OnHDLLinphoneCallListener;
 import com.hdl.hdllinphonesdk.core.service.HDLLinphoneService;
 import com.hdl.hdllinphonesdk.utils.HDLLog;
@@ -48,7 +49,7 @@
 //                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", "47.96.88.250:35060");
 
 
 
@@ -66,7 +67,7 @@
             @Override
             public void onClick(View v) {
                 clearProxyConfig();
-                HDLLinphoneKit.getInstance().setAccountAndLogin("5555", "85521566", "test-gz.hdlcontrol.com:35060");
+                HDLLinphoneKit.getInstance().setAccountAndLogin("8888", "85521566", "47.96.88.250:35060");
             }
         });
 
@@ -79,8 +80,7 @@
 //                HDLLinphoneKit.getInstance().callTo("61723164995779",true);
 //                HDLcallTo("61723164995779",true);
 //                HDLLinphoneKit.getInstance().callTo("1427186301744910338",true);
-                HDLLinphoneKit.getInstance().callTo("5555",true);
-
+                HDLLinphoneKit.getInstance().callTo("1456490719927488513",true);
                 startActivity(HDLLinphoneMonitorActivity.class);
 
 
@@ -91,7 +91,7 @@
             @Override
             public void onClick(View v) {
 
-                HDLLinphoneKit.getInstance().getCore().setNetworkReachable(true);
+//                HDLLinphoneKit.getInstance().getCore().setNetworkReachable(true);
 //                isOpen = !isOpen;
 //                showToast("褰撳墠璁剧疆鐘舵�侊細"+isOpen);
 //                HDLLinphoneKit.getInstance().getCore().enableVideoCapture(isOpen);//绂佺敤鎵嬫満鎽勫儚澶磋棰戦噰闆�
@@ -111,9 +111,18 @@
             }
         });
 
+        //1.鍒濆鍖朣DK锛屽苟娉ㄥ唽HDLLinphoneService
         HDLLinphoneKit.getInstance().initLinphone(this);
+        //2.璁剧疆鏄惁鑷姩璺宠浆鍛煎彨,濡傛灉瀵规帴鏋佸厜鎺ㄩ�佸啀寮瑰嚭椤甸潰锛岃繖閲岃璁剧疆false
         HDLLinphoneKit.getInstance().setAutoJumpCallView(true);
+        //3.鐩戝惉鍛煎彨鍜岀洃鎺ч〉闈紝鐢ㄦ埛鎿嶄綔鐨勭浉鍏充簨浠躲�佹帴鍚�佹嫆鎺ャ�佸紑閿佺瓑....
         setOnHDLLinphoneCallListener();
+    }
+
+    void all(){
+        Intent intent = new Intent(this, HDLLinphoneReverseCallActivity.class);
+        intent.
+        startActivity(intent);
     }
 
     boolean isOpen;
@@ -154,22 +163,22 @@
 
     }
 
-    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();
-        }
-    }
+//    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(){
@@ -189,7 +198,7 @@
             @Override
             public void onUnlockAction() {
 //
-                HDLLinphoneKit.getInstance().getCore().clearAllAuthInfo();
+//                HDLLinphoneKit.getInstance().getCore().clearAllAuthInfo();
 
 //                showToast("寮�閿�");
 //                EasyLinphone.callTo("61723164995779",true);

--
Gitblit v1.8.0