0

我需要一个可行的解决方法来解决这个问题。我使用安卓相机拍照。调用的方法称为 onPictureTaken。该程序应该从图片中获取字节数组,并将其传递回在另一个类中等待它的意图。

我的问题是我得到了Failed Binder Transaction错误。我知道这是因为数据太大。有没有可行的方法在发送之前对其进行压缩?

**注意,我知道我可以只制作和压缩位图,但用我的程序编写来发送实际字节数组的方式更可取。

下面的代码:

public void onPictureTaken(byte[] data, Camera camera) {
            Toast.makeText(getApplicationContext(), "Picture Taken",
                    Toast.LENGTH_SHORT).show();

            //start of finish intent
            Intent intent = new Intent();
            intent.putExtra("image_arr", data);
            setResult(1, intent);
            camera.stopPreview();
            if (camera != null) {
                camera.release();
                mCamera = null;
            }

            finish();

另外,我只在一些安卓设备上得到这个错误,例如我的 GS5 不会抛出这个错误,但我的 Moto X 会。有没有办法确保将要完成的压缩足以不会在设备上引发错误?

谢谢!

4

0 回答 0