ファイルピッカーAPI概要
外部アプリからContentsManager(以下、CMアプリと記載)を起動する際のシーケンスを以下に示す。
外部アプリよりCMアプリは、参照連携(暗黙的/明示的)にてActivity起動(Activity.startActivityForResult)が行われる。
外部アプリから起動されるCMアプリの、Activity起動パラメータは以下の通りである。
項目 | 必須 | 内容 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
アクション | ○ | Intent.ACTION_PICK | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
カテゴリ | △ | クラス指定無し(暗黙)の場合は、Intent.CATEGORY_DEFAULTを、クラス指定あり(明示)場合は、指定の必要なし。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MIMEタイプ | △ |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
データ | - | 指定なし | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
クラス | △ | 暗黙的にCMを呼び出す場合は、指定なし、明示的にCMを呼び出す場合には、jp.co.sharp.android.cm を指定すること。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
拡張1 (putExtra) |
△ | 絞り込み条件(CMにて表示されているコンテンツのクエリー条件) Extraキー《String name》 カテゴリ(種別) jp.co.sharp.android.contentsmanager.EXTRA_KEY_CATEGORY 保存場所 jp.co.sharp.android.contentsmanager.EXTRA_KEY_SAVE_POINT 検索対象文字列 jp.co.sharp.android.contentsmanager.EXTRA_KEY_WORD ソート条件 jp.co.sharp.android.contentsmanager.EXTRA_KEY_SORT_TYPE 選択モード jp.co.sharp.android.contentsmanager.EXTRA_KEY_SELECT_TYPE 設定値《Bundle value》 ArrayList<String>: カテゴリ(種別) 指定されたカテゴリパラメータは、CM起動時の選択可能タブである "0" 1) ピクチャ:指定なし "1" 2) ピクチャ:デジタルカメラ画像(Exifヘッダ有りのJPEGファイルを表示) "2" 3) ピクチャ:絵文字(20x20のgif,jpeg画像を表示) "3" 4) ピクチャ:その他 "4" 5) ムービー:指定なし "5" 6) ムービー:撮影動画(microSDカードの"/movie"以下の動画を表示) "6" 7) ムービー:ダウンロード動画(microSDカードの"/download"以下の動画を表示) "7" 8) ムービー:その他 "8" 9) ミュージック:指定なし "9" 10) ミュージック:ミュージック "10" 11) ミュージック:サウンド "14" 12) ドキュメント:指定なし "15" 13) ドキュメント:Office "16" 14) ドキュメント:PDF "17" 15) ドキュメント:txt "18" 16) その他:指定なし(その他タブは種別指定できません) ※未指定の場合はMimeTypeにそったタブのみを表示する。MimeTypeが"*/*"の場合はTV録画タブを除く全てのタブを表示する。MimeTypeが[image/*]が場合は、Image/* MimeTypeの一覧を表示する。MimeTypeが[aplication/*]の場合はTV録画タブ以外のAplication/*のコンテンツがあるタブを表示する。一覧に表示されるのは[Application/*]となる。 ※カテゴリ指定とMIMEタイプ指定が異なっている場合はカテゴリ指定を優先する。未指定の場合は初期値としてピクチャを表示。指定してある場合は最初に指定されたカテゴリのタブを表示。 ※カテゴリパラメータは起動後の指定・変更はできない。 ※同一カテゴリに属する種別を複数指定した場合、該当カテゴリ指定なし(ALL)と同じ扱いとなる。 ArrayList<String>: 保存場所 "1" : microSD "2" : プリセットデータ ※未指定の場合はデフォルト:microSDが選択対象 ※プリセットデータ、microSD+それら以外の値の場合、プリセットデータ、microSDのみで起動する。 ※プリセットデータ、microSD以外の無効値だけを指定した場合、起動エラーとする。 String: 検索対象文字列 : 検索文字列 外部アプリより絞り込みを行いたい検索対象文字列を指定 制限事項: 1.最大入力文字数は、100byte(最大文字数100byteを超える場合は切り捨て) 2.文字列内にカンマ(",")等で複数指定は不可 3.基本的な禁則文字は使用不可(下記、例を参照) \ 半角エンマーク / 半角スラッシュ : 半角コロン * 半角アスタリスク ? 半角クエスチョンマーク " 半角ダブルクォーテーション < 半角左アングルかっこ > 半角右アングルかっこ | 半角パイプ 改行コード ; 半角セミコロン , 半角カンマ . 半角ドット 4.絵文字は使用不可 ※制限事項に違反していた場合は、[100byte以上は切り捨て]禁則文字は読み飛ばしを行う。ただし、絵文字についてチェックできないので指定した際の挙動は保障しない String: ソート条件 "4" 1) ファイルサイズ 昇順 "5" 2) ファイルサイズ 降順 "0" 3) 保存日時 昇順 "1" 4) 保存日時 降順 "2" 5) タイトル 昇順 "3" 6) タイトル 降順 ※未指定の場合はデフォルト:3) 保存日時 昇順 String: 選択モード "0" : 1件選択 "1" : 複数選択 ※未指定の場合はデフォルト:1件選択 ※複数選択モードの場合のチェック可能な上限は100件 |
下記ソースコードは、外部アプリよりCMを起動する際のサンプソースコードである。
Android4.4(KK)以降の端末向けで、SDカード、本体ストレージを参照する場合は、AndroidManifest.xmlに以下を追加すること
上記表の拡張1(putExtra)で設定されるExtraキーの設定値は、CMアプリ画面の下記項目に対応する
戻り値 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Activity.setResult(int resultCode, Intent data) | ||||||||||
《int resultCode》 | 終了コード Activity.RESULT_OK Activity.RESULT_CANCELED ※キャンセル時には、《Intent data》の各パラメータに何も設定されない |
|||||||||
《Intent data》 | 起動先アプリから設定されるIntent
|
CMアプリで設定されたActivity終了パラメータより、一時ファイル("拡張1")から選択されたコンテンツ情報を取得する。
サンプルコード
CMアプリで設定されたActivity終了パラメータより選択したコンテンツのUri("データ")を取得する。
サンプルコード