Androidデバイスの内部ダウンロードフォルダーパスを取得できますか?
デバイスにSDカードがある場合は、次を使用します。
Environment.getExternalStorageState()
sDカードがない場合は、次を使用します。
Environment.getDataDirectory()
sDカードがない場合は、デバイス上に独自のディレクトリをローカルに作成できます。
//if there is no SD card, create new directory objects to make directory on device
if (Environment.getExternalStorageState() == null) {
//create new file directory object
directory = new File(Environment.getDataDirectory()
+ "/RobotiumTestLog/");
photoDirectory = new File(Environment.getDataDirectory()
+ "/Robotium-Screenshots/");
/*
* this checks to see if there are any previous test photo files
* if there are any photos, they are deleted for the sake of
* memory
*/
if (photoDirectory.exists()) {
File[] dirFiles = photoDirectory.listFiles();
if (dirFiles.length != 0) {
for (int ii = 0; ii <= dirFiles.length; ii++) {
dirFiles[ii].delete();
}
}
}
// if no directory exists, create new directory
if (!directory.exists()) {
directory.mkdir();
}
// if phone DOES have sd card
} else if (Environment.getExternalStorageState() != null) {
// search for directory on SD card
directory = new File(Environment.getExternalStorageDirectory()
+ "/RobotiumTestLog/");
photoDirectory = new File(
Environment.getExternalStorageDirectory()
+ "/Robotium-Screenshots/");
if (photoDirectory.exists()) {
File[] dirFiles = photoDirectory.listFiles();
if (dirFiles.length > 0) {
for (int ii = 0; ii < dirFiles.length; ii++) {
dirFiles[ii].delete();
}
dirFiles = null;
}
}
// if no directory exists, create new directory to store test
// results
if (!directory.exists()) {
directory.mkdir();
}
}// end of SD card checking
manifest.xmlにアクセス許可を追加します
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
ハッピーコーディング..
アプリの内部ストレージの場所を見つけるには、getFilesDir()を使用します。これは、任意のコンテキスト(アクティビティなど)で呼び出され、Fileオブジェクトを取得します。
コードから/ storage/sdcard0 /パスを取得するためにEnvironment.getExternalStorageDirectory()を使用できないのはなぜですか?
パーミッションも追加する必要があります。
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
Uがあなたのソリューションを手に入れることを願っています...