Re: [android-group-japan: 20630] onActivityResultでのファイルパスの取得について

1,652 views
Skip to first unread message

Hiroshi SAKURAI

unread,
Nov 6, 2012, 4:57:37 AM11/6/12
to android-g...@googlegroups.com
桜井と申します。

> ファイルのパスを取得する際に、暗黙的Intentを利用してギャラリーなど
> 他のアプリでパスを取得しようとしているのですが、ファイル種別によって
> 取得できるパスの種類?が違い困っています。

取得できるUriは
content://
file://
など、形は様々です。

ただデータのストリームが読めることができれば良いのであれば、
どの形式でも
  getContentResolver().openInputStream(uri)
で開けます。

ファイル名が必要であれば、
  getContentResolver().query(uri, new String[] { MediaStore.Images.Media.DATA}, null, null, null);
で取れるかもしれません。
ただし、渡されてくるデータがファイルとして存在している保証はないので、
ファイル名は取れないことがあります。

--
Hiroshi SAKURAI



2012/11/6 はしもと <doroi...@gmail.com>
橋本と申します。
 
ファイルをFTPサーバーにアップロードする機能を実装しようとしています。
 
ファイルのパスを取得する際に、暗黙的Intentを利用してギャラリーなど
他のアプリでパスを取得しようとしているのですが、ファイル種別によって
取得できるパスの種類?が違い困っています。
 
取得結果に記載している動画ファイルと同様の形式に統一する手段、
または変換する方法はないでしょうか?
 
ソースと取得結果は以下になります。
-----暗黙的Intent
   Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
   intent.setType("*/*");
   this.startActivityForResult(intent, 54321);
 
-----onActivityResultでパスの取得
   FILE_PATH = data.getData().getPath();
   Log.d("test", "path = " + FILE_PATH);
 
-----取得できたパス
(画像ファイル(jpeg)を指定した場合)
path = /external/images/media/619
 
(動画ファイル(mp4)を指定した場合)
path = /sdcard/Pictures/MyCameraApp/VID_20120829_112516.mp4
 
以上、よろしくお願いします。
 

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/android-group-japan/-/DvQXYU14swAJ にアクセスしてください。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。

はしもと

unread,
Nov 6, 2012, 9:56:29 PM11/6/12
to android-g...@googlegroups.com
 前澤様 、桜井様
 
ご回答ありがとう御座います。
getContentResolver().queryを使うことで、無事ファイルの
パスを取得する事ができました。
 
ファイル名が取れない場合もあると言う事ですので、直接ストリーム
を読めれば良い時は、桜井様の書かれているopenInputStreamを
使って試したいと思います。
Reply all
Reply to author
Forward
0 new messages