is there a way to get the DCIM path (it may be on sdcard or on device)on Api level 7? Environment.DIRECTORY_DCIM is available only from api level 8
You can take a look here
Alternatively, You can save the picture to any path on the sdcard - preferably create a directory for your app. The media scanner in android will pick up your file and add it automatically to the library.
You can force the device to scan the file for immediate results with this (don't know if thats the recommended approach)
I think the DCIM directory is never on the internal storage (My HTC Legend won't even take photo's without an sd-card present). The Environment.DIRECTORY_DCIM variable is just the String "DCIM" ref.
The reason for storing images in /DCIM is compatibility with cardreaders (printers for example) who expect pictures to be available in /DCIM, so I don't think it makes sense to have it on internal storage.
Anyway the folder on external storage (sd-card) can be accessed like this:
File rootsd = Environment.getExternalStorageDirectory();
File dcim = new File(rootsd.getAbsolutePath() + "/DCIM");