私はこのコードを持っています:
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File pictureFileDir = getDir();
if (!pictureFileDir.exists() && !pictureFileDir.mkdirs()) {
Toast.makeText(context, "Dir not created. (ERR#GRA1)", Toast.LENGTH_LONG).show();
return;
}
SimpleDateFormat dateFormat = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss", Locale.US);
String date = dateFormat.format(new Date());
photoFile = acao + android_id + "_" + date + "_" + coordenadas + ".jpg";
String filename = pictureFileDir.getPath() + File.separator + photoFile;
File pictureFile = new File(filename);
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
Toast.makeText(context, "Saved.", Toast.LENGTH_SHORT).show();
Login.totalTiradas++;
} catch (Exception error) {
Toast.makeText(context, "Not saved. (ERR#GRA2)", Toast.LENGTH_LONG).show();
}
camera2.startPreview();
aviso.setVisibility(View.INVISIBLE);
String stringUrl = "111.222.333.444";
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
new conectaFTP().execute(stringUrl);
} else {
Toast.makeText(context, "Fail. Image not sent. (ERR#CON1)", Toast.LENGTH_LONG).show();
}
}
写真を SD カードに保存し、AsyncTask を呼び出して写真をアップロードします。すべて正常に動作します。
写真のサイズを変更する必要があります。保存前でもアップロード前でも誰でもいいです。
適切に作成inSampleSize
またはCamera.setParameters
動作することができませんでした (確かに私の悪いことです)、またはそれがこれを行うためのより良い方法である場合。