即使内容不可见,如何在Android上截取整个活动的屏幕截图?防爆.截取完整聊天的截图然后生成图像文件?

我也想要截图隐形区域.
谢谢
我一直在尝试将 Camera2 api 集成到我的应用程序中。当我从纵向模式切换到横向模式时,它会引发异常
java.lang.IllegalStateException: CameraDevice was already closed
at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:1984)
at android.hardware.camera2.impl.CameraDeviceImpl.submitCaptureRequest(CameraDeviceImpl.java:825)
at android.hardware.camera2.impl.CameraDeviceImpl.setRepeatingRequest(CameraDeviceImpl.java:880)
at android.hardware.camera2.impl.CameraCaptureSessionImpl.setRepeatingRequest(CameraCaptureSessionImpl.java:231)
at com.essentialsln.memtalk.ui.fragments.Camera2Fragment$11.onConfigured(Camera2Fragment.java:795)
at java.lang.reflect.Method.invoke(Native Method)
at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39)
at android.hardware.camera2.dispatch.HandlerDispatcher$1.run(HandlerDispatcher.java:65)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud) 这是我的代码:
private void getUserData(){
//create Retrofit instance
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
Retrofit retrofit = builder.build();
//get client & call object for the request
APIService userService = retrofit.create(APIService.class);
Map<String, Object> map = new HashMap<>();
map.put("device_id", Utils.GetDeviceID(DashboardActivity.this));
Call call = userService.getUser(map);
//execute network request
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if(response.isSuccessful() && response.body() != null){
response.body();
UserDataManager.$().setUserDataResponse(new com.google.gson.Gson().toJson(response.body()));
if(UserDataManager.$().getUserData() != null){
Log.d(TAG, "USER ID: " + UserDataManager.$().getUserData().getId());
}
}
}
@Override
public void …Run Code Online (Sandbox Code Playgroud)