写真を撮り、ジオタグを付けてサーバーに保存するプログラムを作成したいと思います。
1)写真を撮るが保存しない方法はありますか?写真を撮り、圧縮してサーバーに送信したいだけです。SDカードや内部ストレージなどに保存したくないので、送信してください。これが不可能な場合、どうすれば一時的に保存して削除できますか?
2)また、送信するために撮ったばかりの写真にアクセスするにはどうすればよいですか?
最初の質問ですが、電話に写真を保存しない方法はないと思います。どこかに保持する必要があり、もう 1 つのオプションであるアプリケーション メモリを使用すると、OOM エラーが発生する可能性が高くなります。
次に、次のようにカメラ インテントを作成できます。
Intent takePictureFromCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureFromCameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(someFilePathString)));
startActivityForResult(takePictureFromCameraIntent, CAMERA_REQ);
これにより、カメラ アクティビティによって撮影された写真が、によって指定されたパスに保存されsomeFilePathString.
ます。次に、onActivityResult
(またはどこでも) で、次を使用File myFile = new File(someFilePathString)
して、画像にアクセスし、サーバーに送信できます。