2

ユーザーが (ファイル マネージャーから) ファイルをインターネットにアップロードできるように、一種のファイル マネージャーを作成しようとしています。

このアプリケーションがどのようにトリガーされるかを理解したいと思います。

例: Gmail を使用して添付ファイルの追加ボタンを押すと、Android はコンテンツを選択するための 2 つのアプリケーション (Gallery と FileExpert) を表示します。

  • これはどのように達成されますか?
  • どのような種類のインテントがブロードキャストされますか (インテントが使用されている場合)?
  • 添付ファイルの追加ボタンを押して呼び出すことができる Gallery と FileManager はどのようなオブジェクトですか?
4

2 に答える 2

2

あなたは正しいです、これはインテントを使用して達成されます。特に、呼び出しアプリ (この例では Gmail) は、1 つまたは複数のファイルをアップロードするためのインテントを送信します。ファイルを選択するためのインテントはIntent.ACTION_GET_CONTENTです。

このインテントを処理するアプリケーションのリストにアプリを追加するには、マニフェストで指定する必要があります。このドキュメントによると、次のようになります。

<activity android:name=".ui.MyActivity" >
    <intent-filter>
        <action android:name="android.intent.action.ACTION_GET_CONTENT" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="*/*" />
    </intent-filter>
</activity>
于 2013-08-22T11:43:51.493 に答える
0

次のスニペットを参照してください

    ArrayList<Uri> uris = new ArrayList<Uri>();

            File fileToEmail=new File("FIle Path");             


            Uri updf = Uri.fromFile(fileToEmail);//adding pdf uri
             uris.add(updf);                 

                final Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);              
                emailIntent.setType("image/*");               
                emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {});
                emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, caseObj.getCaseTitle());
                emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "");
                emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("mailto:"));                    
                 emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
                activity.startActivity(Intent.createChooser(emailIntent,"Send mail..."));           
于 2013-08-22T11:04:17.267 に答える