|
@@ -13,6 +13,7 @@ import android.content.pm.PackageManager;
|
|
|
import android.location.LocationManager;
|
|
|
import android.os.Build;
|
|
|
import android.os.Environment;
|
|
|
+import android.os.Handler;
|
|
|
import android.provider.MediaStore;
|
|
|
import android.text.TextUtils;
|
|
|
import android.util.Log;
|
|
@@ -43,6 +44,7 @@ import com.naz.sdkdemo.helper.SerialPortManager;
|
|
|
import com.naz.sdkdemo.http.ApiHelper;
|
|
|
import com.naz.sdkdemo.utils.MyTools;
|
|
|
import com.naz.sdkdemo.weight.UserCache;
|
|
|
+import com.naz.sdkdemo.weight.XToast;
|
|
|
import com.tencent.smtt.export.external.interfaces.WebResourceError;
|
|
|
import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
|
|
|
import com.tencent.smtt.sdk.WebSettings;
|
|
@@ -71,6 +73,7 @@ import androidx.camera.core.ImageCapture;
|
|
|
import androidx.camera.core.ImageCaptureException;
|
|
|
import androidx.camera.core.Preview;
|
|
|
import androidx.camera.lifecycle.ProcessCameraProvider;
|
|
|
+import androidx.camera.view.PreviewView;
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
import androidx.core.content.ContextCompat;
|
|
|
import androidx.lifecycle.LifecycleOwner;
|
|
@@ -94,6 +97,7 @@ public class MainActivity extends BaseActivity {
|
|
|
|
|
|
String savePath;
|
|
|
private ListenableFuture<ProcessCameraProvider> cameraProviderFuture;
|
|
|
+ private PreviewView previewView;
|
|
|
private ProcessCameraProvider cameraProvider;
|
|
|
private ImageCapture imageCapture;
|
|
|
|
|
@@ -110,6 +114,7 @@ public class MainActivity extends BaseActivity {
|
|
|
ll_nonet = findViewById(R.id.ll_nonet);
|
|
|
ll_web = findViewById(R.id.ll_web);
|
|
|
mWebView = findViewById(R.id.webview);
|
|
|
+ previewView = findViewById(R.id.previewView);
|
|
|
checkNet();
|
|
|
findViewById(R.id.bt_ref).setOnClickListener(new View.OnClickListener(){
|
|
|
|
|
@@ -396,7 +401,30 @@ public class MainActivity extends BaseActivity {
|
|
|
@JavascriptInterface
|
|
|
public void openCamera() {
|
|
|
Log.e(TAG, "openCamera");
|
|
|
+ // 打开摄像头
|
|
|
toOpenCamera();
|
|
|
+ // 打开摄像头预览
|
|
|
+ // openCameraPreview();
|
|
|
+ }
|
|
|
+
|
|
|
+ @JavascriptInterface
|
|
|
+ public void openCameraPreview() {
|
|
|
+ if (cameraProviderFuture != null) {
|
|
|
+ // 确保摄像头打开后再显示预览组件
|
|
|
+ previewView.setVisibility(View.VISIBLE);
|
|
|
+ } else {
|
|
|
+ XToast.showToast("打开摄像头预览失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @JavascriptInterface
|
|
|
+ public void closeCameraPreview() {
|
|
|
+ if (cameraProviderFuture != null) {
|
|
|
+ // 确保摄像头打开后再显示预览组件
|
|
|
+ previewView.setVisibility(View.GONE);
|
|
|
+ } else {
|
|
|
+ XToast.showToast("关闭摄像头预览失败");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@JavascriptInterface
|
|
@@ -476,9 +504,10 @@ public class MainActivity extends BaseActivity {
|
|
|
try {
|
|
|
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
|
|
|
bindPreview(cameraProvider);
|
|
|
- } catch (ExecutionException | InterruptedException e) {
|
|
|
+ } catch (Exception e) {
|
|
|
// No errors need to be handled for this Future.
|
|
|
// This should never be reached.
|
|
|
+ Log.i(TAG, "toOpenCamera: exception: " + e.getMessage());
|
|
|
}
|
|
|
}, ContextCompat.getMainExecutor(this));
|
|
|
}
|
|
@@ -736,6 +765,7 @@ public class MainActivity extends BaseActivity {
|
|
|
// 设置JPEG的质量为85%
|
|
|
.setJpegQuality(85)
|
|
|
.build();
|
|
|
+ preview.setSurfaceProvider(previewView.getSurfaceProvider());
|
|
|
cameraProvider.unbindAll();//解绑组件
|
|
|
cameraProvider.bindToLifecycle((LifecycleOwner) this, cameraSelector, preview, imageCapture);
|
|
|
|