2012-02-02 15 views
1

ファイルブラウザ(Astroのようなシステムまたはサードパーティ)を特定のパスに開く方法があるかどうかを知りたいと思います。ここにはあまり言いたくないことはありません...かなり簡単な質問です。Intent経由でSDカードのパスを参照

答えて

2

ACTION_GET_CONTENTのようなサウンドが好きです。 See here。関連するビットは次のようになります。私の携帯電話に

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*"); 
startActivityForResult(intent,PICKFILE_RESULT_CODE); 

(既にインストールされている天体を持っている)、これは/ SDカード用アストロダイアログが表示されます。私はこれがファイルブラウザがインストールされていない電話で何をするのか分かりません。私はまた、あなたが実際にこのメソッドを使って開始パスを指定できるかどうか確信しています。ドキュメントでは、ACTION_GET_CONTENTの開始URIを指定できないように見えます。

編集:私は今質問をよく理解していると思います。私はあなたがピッカースタイルのブラウザがユーザーからのファイルパスを取得したいと思っていました。あなたのURIを処理するために本格的なブラウザをしたい場合、これは私の仕事:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse("file:///mnt/sdcard/Music"), "*/*"); 
startActivity(intent); 

は、おそらくあなたの可能なハンドラのかなり長いリストを与えることが、私は、システム上の任意のファイルマネージャを賭けたいだろうリストにある(アストロは確かにある)。

+0

これはうまくいくようですが、少しハックします。それは "ピックモード"でアクティビティを開始するので、何かをシングルクリックするとファイルブラウザを閉じるだけです。ただし、アイテムを変更するためにアイテムを長押しすることはできます。また、一部のファイルブラウザでのみ動作します。これはOIでは動作しますが、Root Browserでは動作しません。しかし、 'setDataAndType(Uri、String)'を与えてパスを指定することはできません。 __Overall__、これは今のところ最良の方法です:/ – Snailer

+0

これは非常に良い例であり、この例は私にとって非常に役に立ちます。それは完璧に 'アストロファイルマネージャー 'と働いています。しかし、ファイルマネージャーの中には、Astro File Manager、Root Browser、OI File Manager、Default File Managerがあります。私は非常に残念ですが、このコード 'intent.setDataAndType(Uri.parse(" file:/// mnt/sdcard/Music ")、" */* ");は' Astro File Manager 'ファイルマネージャはこのコードをサポートしていません。他のファイルマネージャにアクセスするためのコードを変更することができます。手伝って頂けますか。ありがとう。 – Sekar

1

私が提供しているメーカーのファイルブラウザでは、このようなことはありません。

私はそれを行う理論には明らかに間違ったことは何も見ませんが、私はあなたがこの機能を備えたサードパーティのファイルブラウザを見つける可能性が高いと思いますが、私はそれらのいずれにも出くわしたことはありません。

Open Intents OI File Managerこのコンセプトは、すでにこの機能を持っていない場合は、私は彼らが連絡を取り合うと追加することを検討するかもしれないと思うかもしれません。

0

ここでは、クリックするとSDCARDが開き、ファイルが選択され、結果としてファイル名とファイルパスが表示されるBROWSEボタンを作成する方法を示します。一つの選択:

//あなたがヒットするボタン**

browse.setOnClickListener(new OnClickListener() 
    { 
     public void onClick(View v) 
     { 
     Intent intent = new Intent(); 
     intent.setAction(Intent.ACTION_PICK); 
     Uri startDir = Uri.fromFile(new File("/sdcard")); 
     startActivityForResult(intent, PICK_REQUEST_CODE); 
     } 

    }); 

//結果、ファイル名とファイルパス

を取得する機能を
関連する問題