Я разрабатываю приложение, которое может сделать снимок (передняя камера), просто нажав кнопку. Приложение отлично работает на Android API 10 и 15, но когда я пытаюсь это сделать в Android Lollipop, я получаю силовую ошибку.Сделайте снимок в android lollipop программно
Вот мой код:
private void takePicture() {
openCamera();
//System.gc();
camera.startPreview();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
camera.takePicture(
new ShutterCallback() {
@Override
public void onShutter() {
// TODO Do something when the shutter closes.
}
}, new PictureCallback() {
@Override
public void onPictureTaken(byte[] _data, Camera _camera) {
}
}, new PictureCallback() {
@Override
public void onPictureTaken(byte[] _data, Camera _camera) {
// TODO Do something with the image JPEG data.
Bitmap bitmap = BitmapFactory.decodeByteArray(_data, 0, _data.length);
imgPicture.setImageBitmap(bitmap);
Toast.makeText(TakePhotoActivity.this, "Length = " + _data.length, Toast.LENGTH_SHORT).show();
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
File f = new File(Environment.getExternalStorageDirectory()
+ File.separator + "test.jpg");
// remember close de FileOutput
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.close();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
CloseCamera();
}
});
}
}, 1000);
}
Update: Я нашел это, но до сих пор я не знаю, что делать: http://developer.android.com/reference/android/hardware/Camera.PictureCallback.html
Где моя ошибка в LogCat? вы говорите, что он падает, но вы не обнаруживаете LogCat ... не имеет смысла :) –
Я не могу проверить свое приложение в режиме отладки, потому что eclipse не может распознать мой телефон с помощью lollipop для Android. Я просто могу использовать другое устройство Android с API 10, которое отлично работает. –
Какой телефон вы пытаетесь использовать? –