0

カメラ機能付きのアプリを作っていて、インテントスナップでカメラを呼び出し、外部ストレージの「ダウンロード」フォルダにファイルを保存しているのですが、別のフォルダ「/storage/emulated/0/download/」にあるので検索してみました。

なぜandroidは2つのディレクターが必要なのですか? 保存した写真以外は同じファイルで。

ギャラクシー ネクサス電話を使用しています。Galaxyタブレットの場合、すべて問題ありません。

public void openCamera(View view) {
    try {
        int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1991;

        photoName();
        String _path = Environment.getExternalStoragePublicDirectory(DOWNLOAD_SERVICE) + "/" + photoFileName;
        System.out.println("PATH: "+ _path);
        File file = new File( _path );
        Uri outputFileUri = Uri.fromFile( file );

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
        startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

    } catch (Exception e) {

    }



private String photoName() {
   boolean isWhile = true;
   int randomId = 0;
   int count = 0;

   while (isWhile) {
       photoFileName = "MobiliSkaita_" + count + ".jpg";
       File fileToCheck = new File(Environment.getExternalStoragePublicDirectory(DOWNLOAD_SERVICE) + "/" + photoFileName);

       if (fileToCheck.exists()) {
           System.out.println("FAILAS YRA: " + randomId);
           randomId++;
           photoFileName="MobiliSkaita_" + randomId + ".jpg";
       } else {
           System.out.println("FAILAS NERA: " + randomId);
           isWhile = false;
       }
       count++;
   }    
   return photoFileName;
4

1 に答える 1

0

http://developer.android.com/guide/topics/data/data-storage.html#filesExternalから、一部のデバイスは外部ストレージに異なるディレクトリを使用します。

試してください (API >= 8):

Context.getExternalFilesDir();

または (API < 8)

Context.getExternalStorageDirectory();

現在のデバイスの外部ストレージ ディレクトリを取得します (マウントされていると仮定します)。

于 2013-01-09T12:57:45.323 に答える