Я хочу сделать снимок с помощью приложения камеры, встроенного в устройство с сенсорным событием, даже если устройство не поддерживает эту функцию.Как сделать снимок с помощью камеры Приложение
То, что я хочу понять, следующее.
1) Когда я открываю родной или любое другое приложение камеры,
2) Сфотографируйте с сенсорным случае вместо кнопки камеры (Эта часть того, что я хочу разработать)
Ниже код Что я пробовал для этого.
Я попытался вызвать прозрачную активность в приложении для камеры, и когда я получаю событие касания на этом мероприятии, Я вызываю функцию Take_picture().
Но функция camera.takePicture() в Take_picture не работает. (На самом деле это не вызывает функцию jpegCallback)
private void Take_picture(){
camera = Camera.open();
if(camera != null)
{
camera.takePicture(null, null, jpegCallback);
}
}
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
new SaveImageTask().execute(data);
}
};
private class SaveImageTask extends AsyncTask<byte[], Void, Void> {
@Override
protected Void doInBackground(byte[]... data) {
FileOutputStream outStream = null;
System.out.println("66666");
// Write to SD Card
try {
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/camtest");
dir.mkdirs();
String fileName = String.format("%d.jpg", System.currentTimeMillis());
File outFile = new File(dir, fileName);
outStream = new FileOutputStream(outFile);
outStream.write(data[0]);
outStream.flush();
outStream.close();
//Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length + " to " + outFile.getAbsolutePath());
//refreshGallery(outFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
return null;
}
}
Я не мог получить никакой информации Как я контролировать родное приложение камеры для Сфотографируйте мгновенно.
Пожалуйста, помогите.
Тогда, возможно ли получить экземпляр открытой камеры вместо camera.open() ?? – user2688423
@ user2688423: Нет, потому что это в другом приложении, а не у вас. – CommonsWare