6

ユーザーがアプリケーションの「参照」ボタンを押すと、ユーザーがファイル/画像を選択する電話からフォルダを表示したいアプリケーションを構築しています。添付ファイルを選択すると、添付ファイルにファイル名が表示されます。私が探しているのは、ファイル添付メカニズムがアンドロイドでどのように機能するかです。そのため、コード例やスニペットは大歓迎です。

前もって感謝します。

4

1 に答える 1

7

実際にやりたいことは、Intent.ACTION_GET_CONTENT を実行することです。type を指定すると"file/*"、ファイル ピッカーでファイル システムから任意のタイプのファイルを選択できます。

ここにいくつかの読み取りがあります:

これは、ブログから抽出されたソースです (Android-er 提供):

public class AndroidPick_a_File extends Activity {

 TextView textFile;

 private static final int PICKFILE_RESULT_CODE = 1;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

       Button buttonPick = (Button)findViewById(R.id.buttonpick);
       textFile = (TextView)findViewById(R.id.textfile);

       buttonPick.setOnClickListener(new Button.OnClickListener(){

   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub

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

   }});
   }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // TODO Auto-generated method stub
  switch(requestCode){
  case PICKFILE_RESULT_CODE:
   if(resultCode==RESULT_OK){
    String FilePath = data.getData().getPath();
    textFile.setText(FilePath);
   }
   break;

  }
 }
}

選択したファイルへのパスを取得した後、それをどのように処理するかはあなた次第です: データベースにパスを保存する、画面に表示するなど。

デフォルトのアプリケーションでファイルを開く場合は、このブログのアドバイスに従ってください。繰り返しますが、コードを抽出しました (Hello World Codes 提供):

最初の方法:

String path="File Path";
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File(path);

intent.setData(Uri.fromFile(file));

startActivity(intent);

2 番目の方法:

String path="File Path";   
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File(path);

MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext=file.getName().substring(file.getName().indexOf(".")+1);
String type = mime.getMimeTypeFromExtension(ext);

intent.setDataAndType(Uri.fromFile(file),type);

startActivity(intent);

それに値する人たちに感謝を忘れずに残してください(-.

于 2013-01-18T12:57:04.247 に答える