我今天找了一天没找到啊!网上方法都试过了。。
public Bitmap getScreenshot(){
if(input!=null) {
try {
int size = input.readInt();
byte[] data = new byte[size];
int len = 0;
while (len < size) {
len += input.read(data, len, size - len);
}
ByteArrayOutputStream outPut = new ByteArrayOutputStream();
bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
bmp.compress(Bitmap.CompressFormat.PNG, 100, outPut);
Log.d("截图", "getScreenshot: ");
return bmp;
} catch (IOException e) {
Log.e("截图", "getScreenshot: " + e.toString(), e);
return null;
}
}
return null;
}
Log.d("截图", "getScreenshot: ");这句怎么也执行不到。。
根据你提供的代码片段,我看到你在使用 Java 的 Robot
类实现截图功能,并尝试通过 Socket 将截图传送给 Android,并在 ImageView 中显示。你提到该段代码中的日志输出 Log.d("截图", "getScreenshot: ");
没有执行到。
首先,请确保你在 Android 端正常建立了 Socket 连接,并且能够接收数据。另外,需要确保你在服务器端成功将截图数据发送给了 Android 端。
以下是一种可能导致代码无法执行到日志输出的情况:
Socket 连接未建立或连接失败:请确认你在此代码之前是否成功建立了 Socket 连接,并且没有出现异常或错误。可以通过在代码中添加日志输出来检查是否成功建立连接。
数据传输存在问题:请确保在服务器端已经发送了截图数据,并且数据没有被意外截断或损坏。你可以在服务器端添加日志输出来确认数据是否成功发送。
未正确调用截图方法:请检查是否有调用了 getScreenshot()
方法来触发截图操作。也可以在调用截图方法之前添加日志输出以确认程序是否执行到了该部分代码。
除了以上问题,还需要确保 Android 端正确接收并处理 Socket 数据。如果你确定代码逻辑没有问题,但仍然无法执行到日志输出,建议对代码做进一步的调试和排查,例如检查日志输出、查看异常信息等。
另外,如果你能提供更多相关的代码片段和错误信息,我将能够更好地帮助你解决问题。