get external sdcard specific folder path for all android devices - android

Is there any common way to find the specific folder in micro SD card path all crevices?
how to get this path by something like
/storage/extSdCard/MYFOLDER
This is my code its only working on android 4.4.
String securepath = secStoreSystem.getenv("SECONDARY_STORAGE");
String defaul_directory_tpath = secStore+"/MYFOLDER";
secStoreSystem.getenv("SECONDARY_STORAGE")
getting null value in android 4.4+ devices

try this
path = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";
//getting your file/folder
File f = new File(path + File.separator + fileName);

As per your code you are saving external storage path to string variable path
but your are using path1 for getting your folder. Please check this.

Related

getting data from internal storage

I'd like to read all files located in internal storage and filter them to find those *.mp3 ones. With external storage I could just use:
final String MEDIA_PATH = Environment.getExternalStorageDirectory().getPath();
to get the path, but I cannot find the way to do it for internal memory (for instance to get to Music folder of the phone). Is there a way to do it?
Are you aware of getFilesDir() method?
http://developer.android.com/training/basics/data-storage/files.html
You can use Context.getFilesDir() method to get the path to the internal storage.
Like : File file = new File(getFilesDir() + "/" + name);

Should I save external data in directory Android/data or data/?

Which is correct,
String filePath = Environment.getExternalStorageDirectory()
+ "/data/com.packagename";
or
String filePath = Environment.getExternalStorageDirectory()
+ "/Android/data/com.packagename";
if I want to store data in external storage? I see many apps are using the second option, but some use the first path.
You should rely on the API to figure out the directory for you:
File externalDir = Context.getExternalFilesDir(null);
Context.getExternalFilesDir will return your 2nd path. Programs that return the 1st path probably hardcoded the path and got it wrong as a result.

What's the root of my android app?

I'm trying to develop a simple android app. I want to know if an image exist in one of my apps' folder, but I don't know what's the root of my app. I tried...
File nomeFile = new File("res/drawable-hdpi/imagename.jpg")
File nomeFile = new File("myappanem/res/drawable-hdpi/imagename.jpg")
...but it doesn't work.
Try This :
File YourFile = new File(Environment.getExternalStorageDirectory(), "/Android/data/....yourfile.txt");
No you cant access drawable or manifest after packaging. because there will be no "drawable" folder or manifest file at all. All your drawables packed in APK file after installation. You cant reach them.
But you can access any folder of your phone in your app like that.
Firstly make directory.
File directory = new File(Environment.getExternalStorageDirectory()+File.separator
+"Your folder");
directory.mkdirs();
Access your folder like that.
String fileUrl = "/Your folder/a.png";
String file = android.os.Environment.getExternalStorageDirectory().getPath() +
fileUrl;
File f = new File(file);
whether your taking about internal memory of your application cache directory
//use this for internal memory
String path =Environment.getDataDirectory().getAbsolutePath();
File myImage=new File(path,"your file name.extension");
//use this for cache directory
String path=getApplicationContext().getDir("" , Context.MODE_PRIVATE);
File myImage=new File(path,"your file name.extension")

android Downloading database to phone WITHOUT SD card

I have read this tutorial about downloading database to my sd card and I have a question what will happen while the mobile phone does not have SD card?
Then I have to download data to internal memory.
So how to check if device has got sd card or not and then set appropriate location before downloading? or maybe it will be done automatically because it use:
outFile = new File(Environment.getExternalStorageDirectory() + "/" + fileName);
Please help me if you know,
Thank you
Some of Android phones doesnt have an sdcard slot but the internal memory is treated and simulated as external sdcard. Check this before.
To check the sd-card state: getExternalStorageState()
If it has sdcard (or simulated sdcard)
outFile = new File(Environment.getExternalStorageDirectory() + "/" + fileName);
If its better if you create a folder in the sdcard:
String sdpath = Environment.getExternalStorageDirectory().getAbsolutePath();
File dir = new File(sdpath + "/AppFolder");
dir.mkdir();
outFile = new File(dir.toString() + "/" + fileName);
IF the phone dosnt have a simulated sdcard:
outFile = new File(fileName);
The location is data/data/mypackage/
I think it can be useful Android Storage Options.
For database you can check sd-card state with getExternalStorageState(), or use Android SQL helper-class.
public static boolean isSdPresent() {
return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
}

Saving to device with no SD card

My friend and I are attempting to create an app that saves files to a device. We used this code to write to an external SD card, and it works great on his Droid X and Samsung Galaxy Tab.
Get the path to the SD card:
private static final File ROOT = Environment.getExternalStorageDirectory();
Create the folder path and files:
FileWriter fw = new FileWriter(ROOT + "/test/" + "time_frames.txt");
we are using document factory to create the documents
so you can see that we create the path then try to save to that path that was just created
File file = new File(ROOT + "/test/" + "time_frames.txt");
When I run it on my Nexus S (which does NOT have a SD card) is having trouble with the exact same code.
private static final File ROOTtest = Environment.getExternalStorageDirectory();
this returns /data
private static final File ROOT = Environment.getRootDirectory();
this returns /mnt/sdcard
private static final File intData = Environment.getDataDirectory();
this returns /system
my question is which one of these will work for devices that have SD cards and no SD cards? I have tried a lot, but trying all this stuff has really confused me. Thanks in advance
Environment.getExternalStorageDirectory() returns the path to external storage, it should work on all devices. Whether they have an actual SD card doesn't matter, and your code shouldn't care either. You need to make sure that external storage is available before you try to use it though, because it could be unmounted at any time.

Categories

Resources