ファイル uri は次のように既知です。
`file:///mnt/sdcard/Download/AppSearch_2213333_60.apk`
このファイルがバックグラウンドで開くことができるかどうかを確認したいのですが、どうすればよいですか?
次のようにパスのファイルが存在するかどうかを確認します。
File file = new File("/mnt/sdcard/Download/AppSearch_2213333_60.apk" );
if (file.exists()) {
//Do something
}
「file://」などを削除することに注意してください。それ以外の場合は、次を使用します。
File file = new File(URI.create("file:///mnt/sdcard/Download/AppSearch_2213333_60.apk").getPath());
if (file.exists()) {
//Do something
}
また、SD カードにアクセスするには、AndroidManifest.xml でアプリに適切な権限を設定する必要があります。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
次を使用してファイル名を抽出することから始めますURI
。
final String path = URI.create("file:///mnt/sdcard/Download/AppSearch_2213333_60.apk")
.getPath(); // returns the path segment of this URI, ie the file path
final File file = new File(path).getCanonicalFile();
// check if file.exists(); try and check if .canRead(), etc
ここで使用することをお勧めします。これはURI
、URI では違法であるが、ファイル名では合法である可能性のあるすべてのスペース/文字のデコードを処理するためです。