[Android] アンドロイド端末内のファイル検索

スマホ内のファイルを探し出したいときがあると思います。MediaStoreの画像などはコンテンツプロバイダーで検索できますが、特定のファイル検索はどうするのかと調べてみました。
 
device 2016 12 21 212701 170x300 - [Android] アンドロイド端末内のファイル検索

Android Studio 3.0.1
Android 8.1.0

 



ファイルパス検索

 
この方法はフォルダーにあるファイルを一個づつ確認するとてもベタなやり方ですが、ある意味どのようにでも使えます。
また、読出しが可能な範囲に限定され、更にストレージ内を読むのでREAD_EXTERNAL_STORAGEが必要となり、Android 6.0 Runtime Permissionに該当します。Permission checkが必要となります。

検索のやり方は

  1. java.io.File クラスのメソッド list() を使って
    ディレクトリに含まれるファイル、ディレクトリのリストアップをする
  2. subFile.isDirectory()
    リストされた物がディレクトリかファイルか確認
  3. subFile.getName().endsWith(fileType)
    ファイルの拡張子がpngかどうか

以下はお決まりの READ_EXTERNAL_STORAGE に関係するpermission checkとなります。
permissionが許可されたならば次のActivityに飛んで検索処理をします。

MainActivity.java

 
ここからが本番です
SearchPath.java

 
レイアウトです、スクロールできるようにしておきました。
activity_main.xml

 
READ_EXTERNAL_STORAGEとAcivityを追加しておきます
AndroidManifest.xml

 
検索する項目を自由に変更して、目的に合わせてファイル検索できますが、
ルート直下だと Permission でブロックされるディレクトリが多いので注意

File file = Environment.getExternalStorageDirectory();
として外部ストレージ内の検索をしています
といってもAndroid4以降はSDカードを指していません、
スマホ内部のメモリ領域の外部ストレージを指しているケースが多いでしょう。

Google developer: Using the External Storage 
In this case, the SD card is not part of the external storage and your app cannot access it (the extra storage is intended only for user-provided media that the system scans).

だそうです。

スマホの下取り

まだ1年も使っていないスマホを新機種に変えたくて下取りしようとお店に持ち込んだことがありますが、結局なんだかんだと思ったほどの金額になりませんでした(涙

このネットオフは専業のため高額買取が可能で、お店に行く時間が無い人にとっては送料無料の宅配便が自宅まで引取りに来てくれるのは助かります。

定額買取キャンペーン中であればキズがあっても付属品が無くても減額無しでお得です。」


誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加




Google Pixel 3 XLグローバル版
SIMフリー 並行輸入品
6.3インチの大画面
背景をぼかすポートレートモード撮影

Anker PowerCore II Slim 10000
Power IQ 2.0搭載
iPhone & Android対応

シェアする

  • このエントリーをはてなブックマークに追加

フォローする