0

写真を撮るアンドリッド用のアプリを開発しています。問題は、cone l conseguidorの現在の時刻をミリ秒単位で保存するだけで、現在の日付(dd / mm / yyyy)を入力したいということです。

これは私のコードです:

PictureCallback jpegCallback = new PictureCallback() 
{
    public void onPictureTaken(byte[] data, Camera camera)
    {
    FileOutputStream outStream = null;
    try
        {               
    outStream = new FileOutputStream(String.format("/mnt/extSdCard/Photos/%d.jpg", System.currentTimeMillis()));    
    outStream.write(data);
    outStream.close();

    } catch (FileNotFoundException e) {
            e.printStackTrace();
    } catch (IOException e) {
            e.printStackTrace();
    } finally {
        }

}
};

これを入れようとしましたが、機能しません。エラーが発生します。

Calendar c = Calendar.getInstance();
String day = Integer.toString(c.get(Calendar.DATE));
String month = Integer.toString(c.get(Calendar.MONTH));
String year = Integer.toString(c.get(Calendar.YEAR));

String name = day + "/" + month + "/" + year + ".jpg";
String folder = "/mnt/extSdCard/Photos/";
String path = folder + name;

...

outStream = new FileOutputStream(String.format(path));  
outStream.write(data);
outStream.close();

誰かがmepを助けることができますか?

4

2 に答える 2

0

環境からフォルダ文字列を作成する必要があります。

文字列フォルダ=Environment.getExternalStorageDirectory()+ "/ Photos /";

次に、写真がフォルダとして存在することを確認します。それ以外の場合は、作成する必要があります。

于 2013-02-26T14:32:22.790 に答える
0

ファイル名に「/」を使用することはできません。これはシステムによってディレクトリのセットとして解釈され、事前にすべてのディレクトリを作成していない限り、このエラーが発生します。たとえば、2014年1月1日の場合、ファイル名は/mnt/extSdCard/Photos/01/01/2014.jpgになります。

01/01ディレクトリを作成するか、セパレータを「_」や「-」などの別のディレクトリに変更する必要があります。

さらに、少なくとも使用するデバイスのホワイトリストがない場合は、/ mnt/extSdCardをハードコーディングしないでください。すべてのNexusデバイスを含む、多くのデバイスには存在しません。

于 2013-02-27T23:14:11.880 に答える