2

ユーザーが電話のネイティブカメラで写真を撮ることができるアプリケーションがあります。カメラのすべての機能を実装したくありません (オートフォーカス、フラッシュ、またはその他のプロパティを失いたくありません)。ネイティブカメラが持っている可能性があります) だから私はこの呼び出しを行います:

File folder = new File(Environment.getExternalStorageDirectory(),"folder");
    folder.mkdirs();
    File nomedia = new File(folder,".nomedia");
    try{
        nomedia.createNewFile();
    }catch (IOException e){
        e.printStackTrace();
        Log.e("error", e.getMessage());
    }

    File file = new File(folder,"image.jpeg");
    try {
        file.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
    imageUri = Uri.fromFile(file);
    if(imageUri != null){   
        Log.i(TAG, "imageUri: " + imageUri.getPath());
        imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
     }

次に、ボタンでインテントを実行します。

startActivityForResult(imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

これは完全に機能し、カメラが開き、写真を撮るときにコールバックを受け取り、電話のファイルエクスプローラーでフォルダーを見ると、写真と作成した「.nomedia」ファイルを見ることができます。

問題は、カメラがこの画像を携帯電話のギャラリーに保存したくないということです。なぜなら、これはどういうわけか「魔法のように」です;)Androidのギャラリーに追加され、「.nomedia」ファイルを追加して考えました別のフォルダーに画像を作成すると、ギャラリーはそれをスキャンしません。アイデアは、写真はアプリの内部使用のみを目的としているということです。

これを回避する方法はありますか?いろいろ調べていろいろ試してみたのですが、どうしても解決しません。

説明でわかりやすかったと思います。

前もって感謝します!

4

1 に答える 1

3

この解決策を見つけました: Androidネイティブカメラを使用して写真を保存しないでください

アイデアは、写真を撮る直前にギャラリーにあるファイルを確認し、その直後に新しいファイルを削除することです.

これは最もクリーンなソリューションではありませんが、機能します。

于 2012-06-27T16:21:44.080 に答える