From fea52e269bd5ba6a69f421f48d6eaddfb86ad00f Mon Sep 17 00:00:00 2001
From: lss <lsc@hdlchina.com.cn>
Date: 星期四, 22 四月 2021 16:55:55 +0800
Subject: [PATCH] 2021-04-22
---
HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so | 0
HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so | 0
HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs | 148 +++++++++++
HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so | 0
HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so | 0
HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so | 0
HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so | 0
HDL-ON_Android/LeChengVideoActivity.cs | 304 +++++++++++++++++++++++
HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so | 0
HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so | 0
HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs | 317 ++++++++++++++++++++++++
HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so | 0
DLL/LC/Android/LC_SDK.dll | 0
13 files changed, 769 insertions(+), 0 deletions(-)
diff --git a/DLL/LC/Android/LC_SDK.dll b/DLL/LC/Android/LC_SDK.dll
new file mode 100644
index 0000000..5a649ed
--- /dev/null
+++ b/DLL/LC/Android/LC_SDK.dll
Binary files differ
diff --git a/HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs b/HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs
new file mode 100644
index 0000000..23cefec
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs
@@ -0,0 +1,148 @@
+锘�
+using System.Threading;
+using Android.App;
+using Android.Icu.Text;
+using Android.OS;
+using Android.Views;
+using Android.Widget;
+using Java.Util;
+
+namespace HDL_ON_Android.LeChengView.Form
+{
+ public class MonitorFragment : Fragment, View.IOnClickListener
+ {
+
+ private View mView;
+
+ // 鎴浘
+ private LinearLayout screenshotLayout;
+ private ImageView screenImage;
+ private TextView ScreenText;
+
+ //寮�閿�
+ private LinearLayout unlockLayout;
+ private ImageView unlockImag;
+ private TextView unlockText;
+
+ // 鏇存柊绾跨▼
+ private Thread thread = null;
+
+ private LeChengVideoActivity CurtActivity;
+
+ public override void OnCreate(Bundle savedInstanceState)
+ {
+ base.OnCreate(savedInstanceState);
+
+ CurtActivity = (LeChengVideoActivity)this.Activity;
+ }
+
+ public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ mView = inflater.Inflate(Resource.Layout.fragment_monitor, container, false);
+
+ IniView();
+
+ CurtActivity.Play();
+ CurtActivity.OpenAudio();
+
+ return mView;
+ }
+
+ private void IniView()
+ {
+ screenshotLayout = (LinearLayout)mView.FindViewById(Resource.Id.icon_sceenshotLayout);
+ screenImage = (ImageView)mView.FindViewById(Resource.Id.icon_sceenshotImg);
+ ScreenText = (TextView)mView.FindViewById(Resource.Id.icon_sceenshotText);
+
+ unlockLayout = (LinearLayout)mView.FindViewById(Resource.Id.icon_unlockLayout);
+ unlockImag = (ImageView)mView.FindViewById(Resource.Id.icon_unlockImg);
+ unlockText = (TextView)mView.FindViewById(Resource.Id.icon_unlockText);
+
+ unlockLayout.SetOnClickListener(this);
+ screenshotLayout.SetOnClickListener(this);
+ }
+
+
+
+ /// <summary>
+ /// 寮�閿�
+ /// </summary>
+ private void Unlock()
+ {
+ //
+ }
+
+ /// <summary>
+ /// 鏇存柊寮�閿佹寜閽姸鎬�
+ /// </summary>
+ private void UpdataUnlockState()
+ {
+ try
+ {
+ //寮�閿佹垚鍔燂紝15绉掑唴涓嶇粰鍐嶇偣鍑绘寜閽�
+ unlockLayout.Enabled = false;
+ if (thread != null)
+ {
+ try
+ {
+ thread.Interrupt();
+ }
+ catch { }
+ thread = null;
+ }
+
+ thread = new Thread(() =>
+ {
+ try
+ {
+ Thread.Sleep(15 * 1000);
+
+ Activity.RunOnUiThread(() =>
+ {
+ if (unlockLayout != null)
+ unlockLayout.Enabled = true;
+ });
+ }
+ catch { }
+ });
+
+ thread.Start();
+ }
+ catch { }
+ }
+
+ public void OnClick(View v)
+ {
+ //
+ if (v.Equals(unlockLayout))
+ {
+ //寮�閿�
+ }
+ else if (v.Equals(screenshotLayout))
+ {
+ //鏈夎棰戣繃鏉ュ彲璋冪敤姝ゆ帴鍙h繘琛屾媿鐓�
+ // 鍐呴儴鍌ㄥ瓨/DCIM/Camera/.....jpg
+ screenImage.Selected = true;
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
+ string time = format.Format(new Date(SystemClock.CurrentThreadTimeMillis()));
+ string ss = Android.OS.Environment.ExternalStorageDirectory.Path + "/DCIM/Camera";
+ string path = ss + "/" + time + ".jpg";
+ }
+ }
+
+ public override void OnDestroy()
+ {
+ base.OnDestroy();
+
+ if (thread != null)
+ {
+ try
+ {
+ thread.Interrupt();
+ }
+ catch { }
+ thread = null;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs b/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
new file mode 100644
index 0000000..84d67cf
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
@@ -0,0 +1,317 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using Android.App;
+using Android.Icu.Text;
+using Android.OS;
+using Android.Runtime;
+using Android.Util;
+using Android.Views;
+using Android.Widget;
+using HDL_ON.Common;
+using HDL_ON.DAL.Server;
+using Java.Util;
+
+namespace HDL_ON_Android.LeChengView.Form
+{
+ public class ReverseCallFragment : Fragment, View.IOnClickListener
+ {
+
+ private View mView;
+
+ private ImageView screenshotImg;// 鎴浘
+ private ImageView unlockImg;// 寮�閿�
+ private LinearLayout answerLayout; // 鎺ュ惉
+ private ImageView hangupImg;// 鎸傛柇
+ private ImageView answerImg;// 鎺ュ惉
+ private TextView hangupText;
+
+ private TextView tvTip;
+
+ private System.Threading.Timer timer = null;
+ private int Time = 0;
+
+ private static LeChengVideoActivity CurtActivity;
+
+ public override void OnCreate(Bundle savedInstanceState)
+ {
+ base.OnCreate(savedInstanceState);
+
+ CurtActivity = (LeChengVideoActivity)this.Activity;
+ }
+
+ public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ mView = inflater.Inflate(Resource.Layout.fragment_call, container, false);
+
+ IniView();
+
+ CurtActivity.Play();
+
+ CurtActivity.CloseAudio();
+
+ return mView;
+ }
+
+ private void IniView()
+ {
+ screenshotImg = (ImageView)mView.FindViewById(Resource.Id.callScreenshotImg);//
+ unlockImg = (ImageView)mView.FindViewById(Resource.Id.callUnlockImg);//
+ tvTip = (TextView)mView.FindViewById(Resource.Id.callTipText);
+ answerLayout = (LinearLayout)mView.FindViewById(Resource.Id.callAnswerLayout);
+ hangupImg = (ImageView)mView.FindViewById(Resource.Id.callHangupImg);
+ answerImg = (ImageView)mView.FindViewById(Resource.Id.callAnswerImg);
+ hangupText = (TextView)mView.FindViewById(Resource.Id.callHangupText);
+
+ screenshotImg.SetOnClickListener(this);
+ unlockImg.SetOnClickListener(this);
+ hangupImg.SetOnClickListener(this);
+ answerImg.SetOnClickListener(this);
+
+ hangupText.SetText(GetString(Resource.String.video_not_answer), null);
+ tvTip.SetText(GetString(Resource.String.calling), null);
+ }
+
+
+ /// <summary>
+ /// 寮�閿�
+ /// </summary>
+ private void PostUnlock()
+ {
+ //寮�閿侊紝褰撴敹鍒版潵鐢典俊鎭椂鍙繘琛屽紑閿佹搷浣�
+ new Thread(() =>
+ {
+ try
+ {
+ Dictionary<string, object> d = new Dictionary<string, object>();
+ d.Add("deviceId", CurtActivity.DeviceId);//璁惧id
+ string jsonString = HttpUtil.GetSignRequestJson(d);
+
+ string url = "/home-wisdom/platform/imou/openDoorbell";
+ ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+ Log.Info("LcVideo", "Post Unlock Response code=" + response.Code);
+ }
+ catch { }
+
+ }).Start();
+ }
+
+ /// <summary>
+ /// 鏇存柊寮�閿佹寜閽姸鎬�,寮�閿佹垚鍔燂紝15绉掑唴涓嶇粰鍐嶇偣鍑绘寜閽�
+ /// </summary>
+ private void UpdataUnlockState()
+ {
+ try
+ {
+ if (unlockImg == null) return;
+
+ unlockImg.Enabled = false;
+
+ new Thread(() =>
+ {
+ Thread.Sleep(15 * 1000);
+ Activity.RunOnUiThread(() =>
+ {
+ if (unlockImg != null)
+ unlockImg.Enabled = true;
+ });
+ }).Start();
+ }
+ catch { }
+ }
+
+ private string GetTime(int time)
+ {
+
+ int m = time / 60;
+ int s = time % 60;
+
+ return UnitFormat(m) + ":" + UnitFormat(s);
+
+ }
+
+ private static string UnitFormat(int i)
+ {
+ string retStr = null;
+ if (i >= 0 && i < 10)
+ retStr = "0" + i;
+ else
+ retStr = "" + i;
+ return retStr;
+ }
+
+ /// <summary>
+ /// 閫氳瘽璁板綍璁℃椂鍣紝浠庢媺娴佹垚鍔熷紑濮嬭绠楁椂闂�
+ /// </summary>
+ public void TimeStarts()
+ {
+ try
+ {
+ if (timer != null)
+ timer.Dispose();
+
+ TimerCallback timerCallback = new TimerCallback(Tick);
+ timer = new System.Threading.Timer(timerCallback, null, 0, 1000);
+
+ }
+ catch (Exception) { }
+ }
+
+ public void TimeEnd()
+ {
+ Time = 0;
+
+ if (timer != null)
+ {
+ timer.Dispose();
+ timer = null;
+ }
+ }
+
+ public void Tick(object state)
+ {
+ try
+ {
+ Activity.RunOnUiThread(() =>
+ {
+ try
+ {
+ Time++;
+ if (tvTip != null)
+ tvTip.SetText(GetTime(Time), null);
+ }
+ catch { }
+ });
+ }
+ catch { }
+ }
+
+ public void OnClick(View v)
+ {
+ if (v.Equals(answerImg))
+ {
+ //鎺ユ敹鏉ョ數
+ CurtActivity.StartTalk();
+ answerLayout.Visibility = ViewStates.Gone;
+ PostAnswer();
+ }
+ else if (v.Equals(hangupImg))
+ {
+ CurtActivity.StopTalk();
+ PostHangup();
+ TimeEnd();
+ Activity.Finish();
+ }
+ else if (v.Equals(screenshotImg))
+ {
+ //鏈夎棰戣繃鏉ュ彲璋冪敤姝ゆ帴鍙h繘琛屾媿鐓�
+ }
+ else if (v.Equals(unlockImg))
+ {
+ PostUnlock();
+ }
+ }
+
+ /// <summary>
+ /// post 鎴浘
+ /// </summary>
+ /// <param name="path">鎴浘淇濈暀鐨勮矾寰�</param>
+ private void PostScreenshot(string path)
+ {
+ new Thread(() =>
+ {
+ try
+ {
+ string[] str = path.Split("/");
+ string img_name = str.GetValue(str.Length - 1).ToString().Replace(".jpg", "");
+ byte[] images = FileUtlis.Files.ReadFileForPath(path);
+ Dictionary<string, object> d = new Dictionary<string, object>();
+ d.Add("callId", VideoActivity.CallId);
+ d.Add("images", images);
+ d.Add("imagesName", img_name);
+ string jsonString = HttpUtil.GetSignRequestJson(d);
+
+ string url = "/home-wisdom/app/fl/vi/screenshot";
+ ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+ Log.Info("LcVideo", "Post Screenshot Response code=" + response.Code);
+ }
+ catch { }
+
+ }).Start();
+ }
+
+ /// <summary>
+ /// post 鎺ュ惉鐢佃瘽璁板綍
+ /// </summary>
+ public void PostAnswer()
+ {
+ new Thread(() =>
+ {
+ try
+ {
+ Dictionary<string, object> d = new Dictionary<string, object>();
+ d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+ d.Add("callStatus", "RECEIVED");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+ // d.Add("callDuration", Time);//閫氳瘽鏃堕暱锛堢锛�
+ d.Add("interphoneTypeEnum", "IMOUVISIAL");//鍙敤鍊�:FLVI,IMOUVISIAL
+ string jsonString = HttpUtil.GetSignRequestJson(d);
+
+ string url = "/home-wisdom/platform/imou/updateCallStatus";
+ ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+ Log.Info("LcVideo", "Post Answer Response code=" + response.Code);
+ }
+ catch { }
+
+ }).Start();
+ }
+
+ /// <summary>
+ /// post 鎸傛柇鐢佃瘽璁板綍
+ /// </summary>
+ public void PostHangup()
+ {
+ new Thread(() =>
+ {
+ try
+ {
+ Dictionary<string, object> d = new Dictionary<string, object>();
+ d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+ //d.Add("callStatus", "REJECT");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+ d.Add("callDuration", Time);//閫氳瘽鏃堕暱锛堢锛�
+ d.Add("interphoneTypeEnum", "IMOUVISIAL");//鍙敤鍊�:FLVI,IMOUVISIAL
+ string jsonString = HttpUtil.GetSignRequestJson(d);
+
+ string url = "/home-wisdom/platform/imou/updateCallStatus";
+ ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+ Log.Info("LcVideo", "Post Hangup Response code=" + response.Code);
+ }
+ catch { }
+
+ }).Start();
+ }
+
+ /// <summary>
+ /// post 鎷掓帴璁板綍,浠呭彧鏈夊湪姝e父鎸傛柇鐘舵�佷笅鎵嶆彁浜ら�氳瘽鏃堕棿
+ /// </summary>
+ public void PostReject()
+ {
+ new Thread(() =>
+ {
+ try
+ {
+ Dictionary<string, object> d = new Dictionary<string, object>();
+ d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+ d.Add("callStatus", "REJECT");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+ string jsonString = HttpUtil.GetSignRequestJson(d);
+
+ string url = "/home-wisdom/platform/imou/updateCallStatus";
+ ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+ Log.Info("LcVideo", "Post Reject Response code=" + response.Code);
+ }
+ catch { }
+
+ }).Start();
+ }
+ }
+}
diff --git a/HDL-ON_Android/LeChengVideoActivity.cs b/HDL-ON_Android/LeChengVideoActivity.cs
new file mode 100644
index 0000000..71cb5b4
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideoActivity.cs
@@ -0,0 +1,304 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Android;
+using Android.App;
+using Android.Content;
+using Android.Content.PM;
+using Android.Graphics;
+using Android.OS;
+using Android.Runtime;
+using Android.Support.V4.App;
+using Android.Support.V4.Content;
+using Android.Util;
+using Android.Views;
+using Android.Widget;
+using Com.Lechange.Opensdk.Api;
+using Com.Lechange.Opensdk.Device;
+using Com.Lechange.Opensdk.Listener;
+using Com.Lechange.Opensdk.Media;
+using HDL_ON.DAL.Server;
+using HDL_ON_Android.LeChengView.Form;
+using Java.Lang;
+
+namespace HDL_ON_Android
+{
+ [Activity(Label = "LeChengVideoActivity", WindowSoftInputMode = SoftInput.AdjustResize, LaunchMode = LaunchMode.SingleInstance, ConfigurationChanges = (ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.LayoutDirection | ConfigChanges.Locale | ConfigChanges.Orientation | ConfigChanges.ScreenSize), Theme = "@style/MyTheme1", ScreenOrientation = ScreenOrientation.Portrait)]
+ public class LeChengVideoActivity : Activity, View.IOnClickListener
+ {
+ private static LeChengVideoActivity CurtActivity;
+ //
+ private string URL = "openapi.easy4ip.com:443";
+ public string AccessToken = "";
+ public string DeviceId = "";
+ public string Psk = "";
+ public string PlayToken = "";//鎾斁playToken
+ public string CallId = "";//鍛煎彨Id
+ private int Type = 0;//0鐩戞帶锛�1瀵硅
+ /// <summary>
+ /// 0:鍥藉唴锛�1娴峰
+ /// </summary>
+ private int Location = 0;
+
+ private FrameLayout flWindow;
+ private FrameLayout flWindowContent;
+ private ImageView ivBack;
+ private TextView tvName;
+ private MonitorFragment monitorFragment = null;
+ private ReverseCallFragment reverseCallFragment = null;
+
+ public LCOpenSDK_PlayWindow mPlayWindow;
+
+ protected override void OnCreate(Bundle savedInstanceState)
+ {
+ base.OnCreate(savedInstanceState);
+
+ SetContentView(Resource.Layout.activity_video_phone);
+
+ CurtActivity = this;
+ AccessToken = Intent.GetStringExtra("AccessToken");//"St_0000d307a13c965c4db285469484490e"
+ DeviceId = Intent.GetStringExtra("DeviceId");//6K056CFAAJ8FFA1
+ Psk = Intent.GetStringExtra("Psk");//6K056CFAAJ8FFA1
+ PlayToken = Intent.GetStringExtra("PlayToken"); // 鎾斁playToken//"8a5e041afa674a2ba3e84d90a54ea962"
+ Type = Intent.GetIntExtra("Type", 0);//0鐩戞帶锛�1瀵硅//1
+ Location = Intent.GetIntExtra("Location", 0);//1
+ CallId = Intent.GetStringExtra("callId");//1384766990812426242
+
+ InitLCSDK();
+
+ IniView();
+
+ IniData();
+
+ Permissions();
+
+ if (Type == 0)
+ {
+ monitorFragment = new MonitorFragment();
+ FragmentManager.BeginTransaction().Replace(Resource.Id.content, monitorFragment).Commit();
+ }
+ else
+ {
+ reverseCallFragment = new ReverseCallFragment();
+ FragmentManager.BeginTransaction().Replace(Resource.Id.content, reverseCallFragment).Commit();
+ }
+ }
+
+ private void IniView()
+ {
+ //
+ flWindowContent = (FrameLayout)FindViewById(Resource.Id.remoteFrame);
+ flWindow = (FrameLayout)FindViewById(Resource.Id.live_window);
+
+ ivBack = (ImageView)FindViewById(Resource.Id.videoBackImg);
+ tvName = (TextView)FindViewById(Resource.Id.nameText);
+
+ tvName.SetText("DeviceName", null);
+ ivBack.SetOnClickListener(this);
+
+ }
+
+ private void IniData()
+ {
+ //
+ //SetStatusBarColor();// 杩欓噷璁捐鐨凾opBarColor鏄櫧鑹诧紝涓庣郴缁熷鑸爮瀛椾綋棰滆壊涓�鐩达紝鏆傛椂灞忚斀涓嶇敤
+
+ mPlayWindow = new LCOpenSDK_PlayWindow();
+ mPlayWindow.InitPlayWindow(this, flWindowContent, 0, true);
+
+ //if (Location == 1)
+ URL = "openapi.easy4ip.com:443";
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦箰姗欏簱
+ /// </summary>
+ private void InitLCSDK()
+ {
+ InitParams initParams = new InitParams(this, URL, AccessToken);
+ LCOpenSDK_Api.InitOpenApi(initParams);
+ }
+
+ /// <summary>
+ /// 寮�濮嬫挱鏀撅紙棰勮锛�
+ /// </summary>
+ public void Play()
+ {
+ try
+ {
+ LCOpenSDK_ParamReal paramReal = new LCOpenSDK_ParamReal(AccessToken, DeviceId, 0, Psk, PlayToken, 1, false, true);
+ mPlayWindow.PlayRtspReal(paramReal);
+ }
+ catch (System.Exception e)
+ {
+ string sss = e.Message;
+ }
+ }
+
+ /// <summary>
+ /// 鍋滄棰勮锛堝仠姝㈡挱鏀剧敾闈級
+ /// </summary>
+ public void Stop()
+ {
+ mPlayWindow.StopRtspReal(true);//鍏抽棴瑙嗛
+ }
+
+ /// <summary>
+ /// 鎵撳紑瀵硅
+ /// </summary>
+ public void StartTalk()
+ {
+ CloseAudio();// 鍏抽棴Audio
+ LCOpenSDK_Talk.Listener = new AudioTalkerListener();//璁剧疆瀵硅鐩戝惉
+ // 瀵硅鍙傛暟
+ LCOpenSDK_ParamTalk paramTalk = new LCOpenSDK_ParamTalk(AccessToken, DeviceId, -1, Psk, PlayToken, true);
+ LCOpenSDK_Talk.PlayTalk(paramTalk);
+ }
+
+ /// <summary>
+ /// 鍏抽棴瀵硅
+ /// </summary>
+ public void StopTalk()
+ {
+ LCOpenSDK_Talk.StopTalk();
+ LCOpenSDK_Talk.Listener = null;
+ }
+
+ /// <summary>
+ /// 鎵撳紑澹伴煶锛堥瑙堢殑鏃跺�欏彲浠ュ惉鍒伴棬鍙f満浼犳潵鐨勫0闊筹級
+ /// </summary>
+ /// <returns></returns>
+ public bool OpenAudio()
+ {
+ return mPlayWindow.PlayAudio() == 0;
+ }
+
+ /// <summary>
+ /// 鍏抽棴澹伴煶锛堥瑙堢殑鏃跺�欏叧闂棬鍙f尋浼犳潵鐨勫0闊筹紝娉ㄦ剰锛氭墦寮�瀵硅鏃堕渶瑕佸厛璋冪敤姝ゆ柟娉曞叧闂0闊筹級
+ /// </summary>
+ /// <returns></returns>
+ public bool CloseAudio()
+ {
+ return mPlayWindow.StopAudio() == 0;
+ }
+
+ /// <summary>
+ /// 璁剧疆椤堕儴鐘舵�佹爮鑳屾櫙閫忔槑
+ /// </summary>
+ private void SetStatusBarColor()
+ {
+ Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
+ Window.SetStatusBarColor(Color.Transparent);
+ }
+
+ /// <summary>
+ /// 蹇呰鐨勪竴浜涙潈闄�
+ /// </summary>
+ private void Permissions()
+ {
+ string[] mPermissionList = new string[]
+ {
+ Manifest.Permission.WriteExternalStorage,
+ Manifest.Permission.ReadExternalStorage,
+ Manifest.Permission.Camera,
+ Manifest.Permission.RecordAudio
+ };
+
+ foreach (string permissions in mPermissionList)
+ {
+ if (ContextCompat.CheckSelfPermission(this, permissions) != 0)
+ {
+ ActivityCompat.RequestPermissions(this, new string[] { permissions }, 1);
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鐐瑰嚮浜嬩欢
+ /// </summary>
+ /// <param name="v"></param>
+ public void OnClick(View v)
+ {
+ if (v.Equals(ivBack))
+ {
+ this.Finish();
+ }
+ }
+
+ protected override void OnDestroy()
+ {
+ base.OnDestroy();
+
+ Stop();
+ mPlayWindow.UninitPlayWindow();//閿�姣佸簳灞傝祫婧�
+ }
+
+ /// <summary>
+ /// 瀵硅鐩戝惉
+ /// </summary>
+ class AudioTalkerListener : LCOpenSDK_TalkerListener
+ {
+ /// <summary>
+ /// 瀵硅缁撴灉鍥炶皟
+ /// </summary>
+ /// <param name="error"></param>
+ /// <param name="type"></param>
+ public override void OnTalkResult(string error, int type)
+ {
+ base.OnTalkResult(error, type);
+
+ try
+ {
+ bool talkResult = false;
+ if (type == 99 || error.Equals("-1000") || error.Equals("0") || error.Equals("1") || error.Equals("3"))
+ {
+ talkResult = false;
+ }
+ else if (error.Equals("4"))
+ {
+ talkResult = true;
+ }
+
+ if (!talkResult)
+ {
+ // 鎻愮ず瀵硅鎵撳紑澶辫触
+ CurtActivity.StopTalk();
+ CurtActivity.RunOnUiThread(() =>
+ {
+ Toast.MakeText(CurtActivity, "鎵撳紑瀵硅澶辫触", ToastLength.Short).Show();
+ });
+ }
+ else
+ {
+ CurtActivity.reverseCallFragment.PostAnswer();// post鎺ュ惉鐢佃瘽锛岀粰浜戠鍋氳褰�
+ CurtActivity.reverseCallFragment.TimeStarts();//鎺ラ�氭垚鍔熸墦寮�璁℃椂鍣�
+ }
+ }
+ catch { }
+ }
+
+ public override void OnTalkPlayReady()
+ {
+ base.OnTalkPlayReady();
+ }
+
+ public override void OnAudioReceive(byte[] bytes, int p1, int p2, int p3, int p4)
+ {
+ base.OnAudioReceive(bytes, p1, p2, p3, p4);
+ }
+
+ public override void OnAudioRecord(byte[] bytes, int p1, int p2, int p3, int p4)
+ {
+ base.OnAudioRecord(bytes, p1, p2, p3, p4);
+ }
+
+ public override void OnDataLength(int i)
+ {
+ base.OnDataLength(i);
+ }
+ }
+
+ }
+}
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so b/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so
new file mode 100644
index 0000000..426d9a0
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so b/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so
new file mode 100644
index 0000000..1c970f7
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so b/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so
new file mode 100644
index 0000000..29b0cd2
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so b/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so
new file mode 100644
index 0000000..4f557b3
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so b/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so
new file mode 100644
index 0000000..bb7fb84
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so
new file mode 100644
index 0000000..e786702
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so b/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so
new file mode 100644
index 0000000..ab79e66
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so
new file mode 100644
index 0000000..ee4b507
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so
new file mode 100644
index 0000000..7c759a1
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so
Binary files differ
--
Gitblit v1.8.0