標準カメラ、ビデオアプリのSDカード保存パスについて

797 views
Skip to first unread message

エーアイサービス 徳山和宏

unread,
Sep 12, 2010, 1:44:18 AM9/12/10
to android-g...@googlegroups.com
こんにちは。徳山です。

いつもアドバイスありがとうございます。

現在、SDカード内の任意のフォルダ以下のファイルを
オンラインストレージに自動的、定期的にアップロードするアプリを作っています。

機種によって、標準カメラ、標準ビデオアプリの
保存場所が違いますが、手持ちの機種しかわかりません。

<HT-03A>
標準カメラアプリおよび標準ビデオアプリ
/sdcard/DCIM/Camera

<IS01>
標準カメラアプリ
/sdcard/DCIM/100SHARP
標準ビデオアプリ
/sdcard/movie
標準ボイスメモアプリ(なぜここに保存される?)
/sdcard/PRIVATE/SHARP/CM/MUSIC


Xperia、HTC Desire、LYNXなど機種お持ちの方で、
標準カメラ、ビデオ、ボイスメモアプリが
SDカードのどこに保存されるかパスを教えていただけないでしょうか。

Nexus Oneとかも非常に気になります。

よろしくお願いします。

mosaki4

unread,
Sep 12, 2010, 4:33:55 AM9/12/10
to android-g...@googlegroups.com
大崎といいます。

機種によってフォルダを指定する方法では

 ・新機種がでるたびに修正が必要
 ・フォルダをユーザーが変更可能な場合に変わってしまう
 ・標準以外のアプリで記録された場合に対応できない
 ・パソコンから適当なフォルダへファイル転送

等いろいろ問題がありそうですので
下記のような方法はいかがでしょうか?

・コンテントプロバイダーでパス・ファイル名を取得する
または
・固定のフォルダ名のみとする


2010年9月12日14:44 エーアイサービス 徳山和宏 <kazuhiro...@a-i-service.co.jp>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


エーアイサービス 徳山和宏

unread,
Sep 12, 2010, 10:58:20 PM9/12/10
to android-g...@googlegroups.com
大崎様

お返事ありがとうございます。
徳山です。


> 機種によってフォルダを指定する方法では
(略)
> 等いろいろ問題がありそうですので

はい。私も大崎様のおっしゃるとおりの問題が
あると考えています。


SDカード内の任意のフォルダ以下のファイルを
オンラインストレージに自動的、定期的に
アップロードするアプリ

を作ろうと思ったきっかけですが、

通常、アプリのメイン機能に付加される形で、
オンラインストレージ(例えばDropbox、Sugarsync)
への送信機能がついていたりします。

でも、逆に標準アプリしか使っていない人が
オンラインストレージへ送信したい場合、
現在のところオンラインストレージの純正アプリを使って、
手動で送信する方法しか見つけることができませんでした。

私の場合、不精なので、ほとんど標準アプリを使っていて、
例えば標準のカメラアプリで撮っていた写真を、
PCに取り込みたい時にその度マウントする必要があり、
取り込み作業がおっくうになっていました。

撮った写真をブログに載せる際に、
PCにマウントして画像を取り出すのですが、
それがめんどくさくて、
ブログを書かない日が続くという状況でしたので、
せめてPCへの取り込みは自動でやりたいと思って、
アプリを作ることとしました。

それなりに動いてくれているので、
そろそろ、Android Marketで公開しようと思っています。


しかし、HT-03A、IS01の情報しかわかりません。


他機種の方は、保存フォルダの場所を探すことから
始める必要があり、それが導入の最初の壁になると思いました。


そのため、他機種の情報も掲載したいと思いました。


> ・固定のフォルダ名のみとする


現在のバージョンは、
これに近い形で解決しようと思っています。

そのため、保存フォルダの場所の情報を収集している状況です。

設定画面で送信元フォルダをテキスト入力するようにして、
どのアプリでも原理的には使えるような仕様にしています。


> ・コンテントプロバイダーでパス・ファイル名を取得する

この方法は考え付きませんでした。
もし詳しく教えていただけるようであれば、
次のバージョンアップの際に
その方式の採用を考えてみたいと思います。

2010年9月12日17:33 mosaki4 <mos...@gmail.com>:

mokkouyou

unread,
Sep 12, 2010, 11:13:35 PM9/12/10
to android-g...@googlegroups.com
mokkouyouです。

APIレベル8からですが、

という手もありますね。現在の端末普及状況からすると厳しいですが。

また、例えばですが、
ContentProviderから外部ストレージのメディア情報を取得して、
メディアの存在するフォルダを特定(リスティング)してユーザさんに選択させてアプリでパスを保存する
なんて手もあるのかなと思いました。

この方法をとれば、あまり端末依存を気にせずにユーザさんに選択を任せられていいのかなと。
まぁ該当フォルダに1つもファイルがなければリスティングされませんし、すぐ反映されるわけでもないですけど。

※ContentProviderをフォルダの情報だけを取得するためだけに使うといった感じですね。

以上よろしくお願いいたします。
2010年9月13日11:58 エーアイサービス 徳山和宏 <kazuhiro...@a-i-service.co.jp>:



--
mokkouyou
mokk...@gmail.com

エーアイサービス 徳山和宏

unread,
Sep 13, 2010, 1:14:45 AM9/13/10
to android-g...@googlegroups.com
mokkouyouさま

徳山です。

> APIレベル8からですが、

ありがとうございます。
メインの開発機がHT-03Aってこともあり、
今のところ1.6(できれば1.5)でがんばります。

HTC Desireなど使い始めたら、Ver.2系で考えるかもしれませんが。

もしかしたら、Ver.2以上で既にアプリがあるかもしれませんね。
最新APIの勉強もするようにします。


2010年9月13日12:13 mokkouyou <mokk...@gmail.com>:

mosaki4

unread,
Sep 13, 2010, 9:01:45 AM9/13/10
to android-g...@googlegroups.com
大崎です

mokkouyouさんの案がよさそうですね
簡単に記述すると(例外とかファイルがない場合は除外)
下記のような感じでディレクトリのリストが取得できるのでよかったら参考にしてみてください。

    private String[] getImageList(){
    
     HashSet<String> list = new HashSet<String>();
    
     Cursor c = this.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
     while(c.moveToNext()){
     String imagefile = c.getString(c.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.DATA));
     File file = new File(imagefile);
     list.add(file.getParent());
     }
    
     return (String[]) list.toArray(new String[list.size()]);
    }


2010年9月12日14:44 エーアイサービス 徳山和宏 <kazuhiro...@a-i-service.co.jp>:
こんにちは。徳山です。

エーアイサービス 徳山和宏

unread,
Sep 13, 2010, 9:10:08 AM9/13/10
to android-g...@googlegroups.com
大崎様

徳山です。
サンプルコードとても助かります。

次回対応向けて、また動作確認してみます。

ありがとうございます。


2010年9月13日22:01 mosaki4 <mos...@gmail.com>:

hirokuma ueno

unread,
Sep 13, 2010, 9:27:38 AM9/13/10
to android-g...@googlegroups.com
かなり曖昧な記憶ですが、SDカードに保存するデータの共通規格があり、
それに従っておけば「ある程度は」いいのではないかと思います。
(SD-VIDEO、SD-AUDIOなど)

ただ、おおまかなフォルダ構成だけで、それ以上は自由だったような気がします。
規格書を探したのですが、見つけられませんでした。
とりあえず、以下のような規格があります。
http://www.sdcard.org/jp/developers/tech/sd_apps/

--
//ueno

エーアイサービス 徳山和宏

unread,
Sep 13, 2010, 12:12:16 PM9/13/10
to android-g...@googlegroups.com
徳山です。

SDカード内でなんらかの命名規則があるのは、
うすうす思っていましたが規格があるんですね。

とりあえず、アプリの方はAndroid Marketで公開して、
あとで端末別の情報を充実させることにしました。

AiWiFi(日本語版)
作業効率化カテゴリに登録しました。


保存パスの情報いただいたら、
こちらのページに追記していきます。

アプリの詳細説明ページ
http://www.a-i-service.co.jp/aiwifi.html


みなさん、ありがとうございます。


2010年9月13日22:27 hirokuma ueno <ueno...@gmail.com>:

そうめい

unread,
Sep 23, 2010, 12:26:30 PM9/23/10
to 日本Androidの会
そうめいです。

徳山さん、
AiWiFiは結局、保存パスを設定する仕様を採用されたのですよね?

私もいま同じような問題に直面していまして
みなさんの意見を参考にさせていただきました。

ありがとうございます。


ちなみに私はXperiaユーザーなんですが

標準カメラアプリおよび標準ビデオアプリの保存先は
/sdcard/DCIM/100ANDRO
のようです。


よろしくお願いします。




On 9月14日, 午前1:12, エーアイサービス 徳山和宏 <kazuhiro_tokuy...@a-i-service.co.jp>
wrote:
> 徳山です。
>
> SDカード内でなんらかの命名規則があるのは、
> うすうす思っていましたが規格があるんですね。
>
> とりあえず、アプリの方はAndroid Marketで公開して、
> あとで端末別の情報を充実させることにしました。
>
> AiWiFi(日本語版)
> 作業効率化カテゴリに登録しました。
>
> 保存パスの情報いただいたら、
> こちらのページに追記していきます。
>
> アプリの詳細説明ページhttp://www.a-i-service.co.jp/aiwifi.html
>
> みなさん、ありがとうございます。
>
> 2010年9月13日22:27 hirokuma ueno <uenok...@gmail.com>:

エーアイサービス 徳山和宏

unread,
Sep 25, 2010, 9:46:05 PM9/25/10
to android-g...@googlegroups.com
徳山です。

> AiWiFiは結局、保存パスを設定する仕様を採用されたのですよね?

はい。それも手入力で。
ちょっと面倒くさいです。

ファイルマネージャーのような
ファイル/フォルダ選択機能を実装するのは、
時間がかかるので断念しました。


簡単にファイル/フォルダ選択できる機能は、
いろいろなアプリで共有できる機能なので、
もしそういうアプリやライブラリが見つかれば、
組み込みたいと思います。


> ちなみに私はXperiaユーザーなんですが
> 標準カメラアプリおよび標準ビデオアプリの保存先は
> /sdcard/DCIM/100ANDRO

ありがとうございます。

Xperiaの場合の保存先情報を追記しておきます。


2010年9月24日1:26 そうめい <isy.s...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages