[解決済み] Android ファイルチューザー [終了しました]
2022-08-11 10:39:57
質問
ファイルアップローダを作りたい。そして、ファイルチューザーが必要なのですが、自分で書くのは嫌です。OI ファイルマネージャを見つけ、それは私に合っていると思います。 しかし、どのようにしてユーザーにOIファイルマネージャーをインストールさせることができますか? もしできないなら、私のアプリにファイルマネージャーを含める良い方法はありますか? Thx
どのように解決するのですか?
編集 ( 2012年01月02日 ):
私はこのプロセスを合理化する小さなオープンソースのAndroid Library Projectを作成し、同時に 組み込みのファイル エクスプローラー を提供します (ユーザーがファイル エクスプローラーを持っていない場合に備えて)。これは非常にシンプルで、わずか数行のコードしか必要としません。
GitHubで見つけることができます。 aFileChooser .
オリジナル
ユーザーがシステム内の任意のファイルを選択できるようにしたい場合、独自のファイル マネージャーを組み込むか、ユーザーにダウンロードするように指示する必要があります。あなたにできる最善の方法は、quot;openable" のコンテンツを
Intent.createChooser()
でコンテンツを探すことだと思います。
private static final int FILE_SELECT_CODE = 0;
private void showFileChooser() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(
Intent.createChooser(intent, "Select a File to Upload"),
FILE_SELECT_CODE);
} catch (android.content.ActivityNotFoundException ex) {
// Potentially direct the user to the Market with a Dialog
Toast.makeText(this, "Please install a File Manager.",
Toast.LENGTH_SHORT).show();
}
}
次に、選択されたファイルの
Uri
で
onActivityResult()
のように
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case FILE_SELECT_CODE:
if (resultCode == RESULT_OK) {
// Get the Uri of the selected file
Uri uri = data.getData();
Log.d(TAG, "File Uri: " + uri.toString());
// Get the path
String path = FileUtils.getPath(this, uri);
Log.d(TAG, "File Path: " + path);
// Get the file instance
// File file = new File(path);
// Initiate the upload
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
は
getPath()
メソッドで
FileUtils.java
は
public static String getPath(Context context, Uri uri) throws URISyntaxException {
if ("content".equalsIgnoreCase(uri.getScheme())) {
String[] projection = { "_data" };
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow("_data");
if (cursor.moveToFirst()) {
return cursor.getString(column_index);
}
} catch (Exception e) {
// Eat it
}
}
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] アプリケーションを終了することは嫌われますか?
-
[解決済み] Python の open() はファイルが存在しない場合、ファイルを作成しない
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] google-services.jsonって実際何してるの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CardView layout_width="match_parent "が親のRecyclerViewの幅と一致しない。
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] 非ActivityクラスでContextを取得する [重複].
-
[解決済み] アンドロイドでシェイクを検出するには?
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] Travis.yml ./gradlew : パーミッションが拒否されました。
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理