Przeglądaj źródła

新机器适配

wuyunfeng 2 lat temu
rodzic
commit
565412259a

+ 12 - 1
app/build.gradle

@@ -70,7 +70,7 @@ android {
 dependencies {
 dependencies {
 
 
 //    implementation project(path: ':rtc-chat')
 //    implementation project(path: ':rtc-chat')
-    compile fileTree(dir: 'libs', include: ['*.aar'])
+    implementation fileTree(dir: 'libs', include: ['*.aar'])
     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
         exclude group: 'com.android.support', module: 'support-annotations'
         exclude group: 'com.android.support', module: 'support-annotations'
     })
     })
@@ -157,4 +157,15 @@ dependencies {
     //compile project(':libwebrtc')
     //compile project(':libwebrtc')
     //compile project(':rtc-chat')
     //compile project(':rtc-chat')
     //compile project(':keepalive')
     //compile project(':keepalive')
+
+    // 旷世算法
+    implementation files('libs/FacePassAndroidSDK-McvSafe-release.aar')
+    implementation files('libs/mcvSafe.v1.2.2.aar')
+
+    // 硬件 sdk
+    implementation 'io.github.jimmy-j:facesdk:2.0.19'
+    // todo 下面是主板依赖,需要开发人员根据更新系统类型切换,rk 表示 rk 主板,well 表示三星主板,如果依赖错误会 crash
+    // rk 主板依赖
+    implementation 'io.github.jimmy-j:rk-system:1.0.6'
+
 }
 }

BIN
app/libs/FacePassAndroidSDK-McvSafe-release.aar


BIN
app/libs/eascofacesdk.aar


BIN
app/libs/idiccard_usb.aar


BIN
app/libs/mcvSafe.v1.2.2.aar


+ 16 - 9
app/src/main/AndroidManifest.xml

@@ -9,11 +9,13 @@
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
     <uses-permission android:name="android.permission.RECORD_AUDIO"/>
     <uses-permission android:name="android.permission.RECORD_AUDIO"/>
 
 
+
+
     <uses-feature
     <uses-feature
         android:name="android.hardware.com.camera.front"
         android:name="android.hardware.com.camera.front"
-        android:required="false"/>
-    <uses-feature android:name="android.hardware.camera"/>
-    <uses-feature android:name="android.hardware.com.camera.autofocus"/>
+        android:required="false" />
+    <uses-feature android:name="android.hardware.camera" />
+    <uses-feature android:name="android.hardware.com.camera.autofocus" />
 
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
@@ -30,11 +32,15 @@
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
 
 
-    <uses-permission android:name="android.permission.SET_TIME"/>
-    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
-    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
-    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
-
+    <uses-permission android:name="android.permission.SET_TIME"
+        tools:ignore="ProtectedPermissions" />
+    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
+        tools:ignore="ProtectedPermissions" />
+    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
+        tools:ignore="ProtectedPermissions" />
+    <uses-permission android:name="android.permission.WRITE_SETTINGS"
+        tools:ignore="ProtectedPermissions" />
+    <uses-sdk tools:overrideLibrary="com.q_zheng" />
     <application
     <application
         android:name="com.wdkl.ncs.entraceguard.application.Application"
         android:name="com.wdkl.ncs.entraceguard.application.Application"
         android:allowBackup="true"
         android:allowBackup="true"
@@ -45,10 +51,11 @@
         android:supportsRtl="true"
         android:supportsRtl="true"
         android:theme="@style/Theme.AppCompat.NoActionBar"
         android:theme="@style/Theme.AppCompat.NoActionBar"
         tools:remove="android:requestLegacyExternalStorage"
         tools:remove="android:requestLegacyExternalStorage"
-        tools:replace="android:label">
+        tools:replace="android:label,android:icon,android:theme">
 
 
         <activity
         <activity
             android:name="com.wdkl.ncs.entraceguard.activity.MainActivity"
             android:name="com.wdkl.ncs.entraceguard.activity.MainActivity"
+            android:screenOrientation="portrait"
             android:launchMode="singleTask">
             android:launchMode="singleTask">
 
 
                 <intent-filter>
                 <intent-filter>

+ 7 - 1
app/src/main/java/com/wdkl/ncs/entraceguard/activity/MainActivity.kt

@@ -209,7 +209,7 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
 
 
                             countDownTimer.start()
                             countDownTimer.start()
                             RingPlayHelper.playRingTone(this, R.raw.alice, true)
                             RingPlayHelper.playRingTone(this, R.raw.alice, true)
-                            WebRTCEngine.getInstance().switchCamera()
+//                            WebRTCEngine.getInstance().switchCamera()
 //                            startCall(interactionVO!!.toSipId, false)
 //                            startCall(interactionVO!!.toSipId, false)
                         }
                         }
 
 
@@ -226,6 +226,7 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
                             cancelCountDownTimer()
                             cancelCountDownTimer()
                             // 通过,亮起绿色灯光,并开门
                             // 通过,亮起绿色灯光,并开门
                             gpioHelper!!.setPassStatus(true)
                             gpioHelper!!.setPassStatus(true)
+                            gpioHelper!!.setWhiteLedStatus(true);
                             play(passSoundID!!)
                             play(passSoundID!!)
 
 
                             showTipView(R.drawable.allow_in,"欢迎光临,正在为您开门")
                             showTipView(R.drawable.allow_in,"欢迎光临,正在为您开门")
@@ -418,6 +419,9 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
 
 
     private fun exitApp(delay: Long) {
     private fun exitApp(delay: Long) {
         handler.postDelayed({
         handler.postDelayed({
+            //关闭灯光,闭合继电器
+            gpioHelper!!.ledDismiss(false);
+
             val packageManager: PackageManager = packageManager
             val packageManager: PackageManager = packageManager
             val intent: Intent = packageManager.getLaunchIntentForPackage("com.rlapk")
             val intent: Intent = packageManager.getLaunchIntentForPackage("com.rlapk")
             startActivity(intent)
             startActivity(intent)
@@ -492,9 +496,11 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
     override fun didCreateLocalVideoTrack() {
     override fun didCreateLocalVideoTrack() {
         handler.post {
         handler.post {
             if (localSurfaceView == null) {
             if (localSurfaceView == null) {
+
                 val surfaceView = WebRTCEngine.getInstance().startPreview(true)
                 val surfaceView = WebRTCEngine.getInstance().startPreview(true)
                 if (surfaceView != null) {
                 if (surfaceView != null) {
                     localSurfaceView = surfaceView as SurfaceViewRenderer
                     localSurfaceView = surfaceView as SurfaceViewRenderer
+
                 } else {
                 } else {
                     EventBus.getDefault().post(MessageEvent("back_to_main", Constants.BACK_TO_MAIN_MSG))
                     EventBus.getDefault().post(MessageEvent("back_to_main", Constants.BACK_TO_MAIN_MSG))
                 }
                 }

+ 1 - 1
app/src/main/java/com/wdkl/ncs/entraceguard/application/Application.java

@@ -15,7 +15,7 @@ public class Application extends BaseApplication {
 
 
     private void initFaceSDK() {
     private void initFaceSDK() {
         FaceSdkConfig config = new FaceSdkConfig(true, this);
         FaceSdkConfig config = new FaceSdkConfig(true, this);
-        config.setSerialNumber("");
+        config.setDeviceNumber(android.os.Build.SERIAL);
         FaceSdkApplication.initFaceSDKApplication(config);
         FaceSdkApplication.initFaceSDKApplication(config);
         FaceSdkApplication.Companion.version();
         FaceSdkApplication.Companion.version();
     }
     }

+ 1 - 1
framework/src/main/java/com/wdkl/ncs/framework/api/UrlManager.kt

@@ -50,6 +50,6 @@ private class ProUrlManager : UrlManager{
 
 
 
 
     override val device_url: String
     override val device_url: String
-        get() = "http://172.28.100.100:8006"
+        get() = "http://119.23.151.229:8006"
 
 
 }
 }

+ 10 - 5
janus/src/main/java/com/wdkl/ncs/janus/rtc/WebRTCEngine.java

@@ -15,6 +15,8 @@ import android.util.Log;
 import android.view.View;
 import android.view.View;
 
 
 
 
+import androidx.annotation.Nullable;
+
 import com.wdkl.ncs.janus.render.ProxyVideoSink;
 import com.wdkl.ncs.janus.render.ProxyVideoSink;
 import com.wdkl.ncs.janus.rtc.observer.CreatePeerConnectionCallback;
 import com.wdkl.ncs.janus.rtc.observer.CreatePeerConnectionCallback;
 import com.wdkl.ncs.janus.util.Constant;
 import com.wdkl.ncs.janus.util.Constant;
@@ -38,6 +40,9 @@ import org.webrtc.SurfaceViewRenderer;
 import org.webrtc.VideoCapturer;
 import org.webrtc.VideoCapturer;
 import org.webrtc.VideoDecoderFactory;
 import org.webrtc.VideoDecoderFactory;
 import org.webrtc.VideoEncoderFactory;
 import org.webrtc.VideoEncoderFactory;
+import org.webrtc.VideoFrame;
+import org.webrtc.VideoProcessor;
+import org.webrtc.VideoSink;
 import org.webrtc.VideoSource;
 import org.webrtc.VideoSource;
 import org.webrtc.VideoTrack;
 import org.webrtc.VideoTrack;
 import org.webrtc.audio.AudioDeviceModule;
 import org.webrtc.audio.AudioDeviceModule;
@@ -74,8 +79,8 @@ public class WebRTCEngine {
     private static final String VIDEO_CODEC_VP8 = "VP8";
     private static final String VIDEO_CODEC_VP8 = "VP8";
     private static final String VIDEO_CODEC_VP9 = "VP9";
     private static final String VIDEO_CODEC_VP9 = "VP9";
     private static final String DTLS_SRTP_KEY_AGREEMENT_CONSTRAINT = "DtlsSrtpKeyAgreement";
     private static final String DTLS_SRTP_KEY_AGREEMENT_CONSTRAINT = "DtlsSrtpKeyAgreement";
-    private static final int VIDEO_RESOLUTION_WIDTH = 1280;
-    private static final int VIDEO_RESOLUTION_HEIGHT = 800;
+    private static final int VIDEO_RESOLUTION_WIDTH = 960;
+    private static final int VIDEO_RESOLUTION_HEIGHT =640 ;
     private static final int FPS = 30;
     private static final int FPS = 30;
     private String preferredVideoCodec;
     private String preferredVideoCodec;
     private PeerConnectionParameters peerConnectionParameters;
     private PeerConnectionParameters peerConnectionParameters;
@@ -344,8 +349,8 @@ public class WebRTCEngine {
         for (String deviceName : deviceNames) {
         for (String deviceName : deviceNames) {
             Log.d(TAG, "createCameraCapture device name: " + deviceName);
             Log.d(TAG, "createCameraCapture device name: " + deviceName);
             if (enumerator.isFrontFacing(deviceName)) {
             if (enumerator.isFrontFacing(deviceName)) {
+                enumerator.getSupportedFormats(deviceName);
                 VideoCapturer videoCapturer = enumerator.createCapturer(deviceName, null);
                 VideoCapturer videoCapturer = enumerator.createCapturer(deviceName, null);
-
                 if (videoCapturer != null) {
                 if (videoCapturer != null) {
                     return videoCapturer;
                     return videoCapturer;
                 }
                 }
@@ -421,9 +426,9 @@ public class WebRTCEngine {
             surfaceTextureHelper = SurfaceTextureHelper.create("CaptureThread", mRootEglBase.getEglBaseContext());
             surfaceTextureHelper = SurfaceTextureHelper.create("CaptureThread", mRootEglBase.getEglBaseContext());
             videoSource = factory.createVideoSource(captureAndroid.isScreencast());
             videoSource = factory.createVideoSource(captureAndroid.isScreencast());
 
 
+
             captureAndroid.initialize(surfaceTextureHelper, mContext, videoSource.getCapturerObserver());
             captureAndroid.initialize(surfaceTextureHelper, mContext, videoSource.getCapturerObserver());
             captureAndroid.startCapture(VIDEO_RESOLUTION_WIDTH, VIDEO_RESOLUTION_HEIGHT, FPS);
             captureAndroid.startCapture(VIDEO_RESOLUTION_WIDTH, VIDEO_RESOLUTION_HEIGHT, FPS);
-
             VideoTrack _localVideoTrack = factory.createVideoTrack(VIDEO_TRACK_ID, videoSource);
             VideoTrack _localVideoTrack = factory.createVideoTrack(VIDEO_TRACK_ID, videoSource);
             _localStream.addTrack(_localVideoTrack);
             _localStream.addTrack(_localVideoTrack);
         }
         }
@@ -443,7 +448,6 @@ public class WebRTCEngine {
         localRenderer.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
         localRenderer.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
         localRenderer.setMirror(true);
         localRenderer.setMirror(true);
         localRenderer.setZOrderMediaOverlay(isOverlay);
         localRenderer.setZOrderMediaOverlay(isOverlay);
-
         localSink = new ProxyVideoSink();
         localSink = new ProxyVideoSink();
         localSink.setTarget(localRenderer);
         localSink.setTarget(localRenderer);
         if (_localStream.videoTracks.size() > 0) {
         if (_localStream.videoTracks.size() > 0) {
@@ -636,6 +640,7 @@ public class WebRTCEngine {
         if (captureAndroid == null) return;
         if (captureAndroid == null) return;
         if (captureAndroid instanceof CameraVideoCapturer) {
         if (captureAndroid instanceof CameraVideoCapturer) {
             CameraVideoCapturer cameraVideoCapturer = (CameraVideoCapturer) captureAndroid;
             CameraVideoCapturer cameraVideoCapturer = (CameraVideoCapturer) captureAndroid;
+
             try {
             try {
                 cameraVideoCapturer.switchCamera(new CameraVideoCapturer.CameraSwitchHandler() {
                 cameraVideoCapturer.switchCamera(new CameraVideoCapturer.CameraSwitchHandler() {
                     @Override
                     @Override

+ 1 - 1
janus/src/main/java/com/wdkl/ncs/janus/util/Constant.java

@@ -9,7 +9,7 @@ public class Constant {
     public final static ServerInfo serverInfo = ServerInfoUtil.getServerInfo();
     public final static ServerInfo serverInfo = ServerInfoUtil.getServerInfo();
 
 
 //    public final static String GATEWAY_URL="8.129.220.143";
 //    public final static String GATEWAY_URL="8.129.220.143";
-    public final static String GATEWAY_URL=(serverInfo==null?"172.28.100.100":serverInfo.getWebrtcServer());
+    public final static String GATEWAY_URL=(serverInfo==null?"119.23.151.229":serverInfo.getWebrtcServer());
     public final static String GATEWAY_WS_PORT=(serverInfo==null?"8188":serverInfo.getWebrtcServerPort().toString());
     public final static String GATEWAY_WS_PORT=(serverInfo==null?"8188":serverInfo.getWebrtcServerPort().toString());
 //    public final static String GATEWAY_URL="120.76.246.253";
 //    public final static String GATEWAY_URL="120.76.246.253";
 //    public final static String GATEWAY_WS_PORT="5089";
 //    public final static String GATEWAY_WS_PORT="5089";