はじめてお世話になります うらおと申します。
現在、カメラの機種依存について困っています。現在、暗黙インテントを使用しカメラを起動
その戻り値を画面のイメージビューにVGAサイズで表示 という処理を組み込んでいます。
そこで困ったことが発生しています。
同じ画像が一部機種によってアプリ側で指定したフォルダとカメラアプリ独自作成のフォルダに作成されてしまいます。【現行処理】
①カメラ起動ボタン押下時に画像の格納パスをContentResolverを用い作成
②暗黙インテントにその作成したパスを指定
③onActivityResultでContentResolverから最新で撮影した画像パスを取得
④ImageViewに展開~sample code~
// 画像格納先URIを先に生成
mphotoUri = "content://media/external/images/media/XXXX";←ここで自作のフォルダを経由したURLを自動生成
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mphotoUri);// カメラアプリ起動
startActivityForResult(intent, REQUEST_CODE_CAMERA);【困っていること】
>③onActivityResultでContentResolverから最新で撮影した画像パスを取得
の時点で自作したフォルダのURLに画像は作成されます。
しかしながら、機種によってギャラリーと自作フォルダ両方に同じ画像がそれぞれ格納されてしまいます。【理想とする最終形態】
・自作で生成したフォルダのみにカメラからの画像が作成される。【私の環境で確認の取れた機種】
同じ画像2枚できる機種:ギャラクシーS2(SC-02C)、エクスぺリア(S03D)
同じ画像2枚できない機種:ギャラクシーS3(SC-06D)、富士通(F-12C)このような現象を回避または対処するよき方法がありますでしょうか?
お手数をおかけしますが、ご回答の程よろしくお願いいたします。
はじめまして、NickQと申します。インテントしたカメラアプリの方で保存されているなら制御という部分では厳しくないですかね?リザルトで貰えるならそれを消すとか移動で解決しませんかね。
t2lowと申します。
ファイルの変更を監視できるFileObserverというクラスがあります。
FileObserver | Android Developers
http://developer.android.com/reference/android/os/FileObserver.html
カメラアプリの制御はできませんが、ファイルが2つ作成されたことはわかるかと思います。
(SDカード全体を監視するような使い方ができるのかどうかは試していないのでわかりません)
これが使えれば、カメラアプリ側のファイルを消すということも可能だと思います。
以上です。
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/android-group-japan/-/58zSzUZV1-sJ にアクセスしてください。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。