Getting file access permission in a folder in Android 11/12 - android

My app will read and write .db and .txt files in a directory in Downloads.
I already select and request that folder access permission like this:
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, REQUEST_CODE_FOR_DIR);
It works fine if the directory is empty and create those files from app.
If I want to read or edit those files already exist will cause error:
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Download/app_Folder/test.txt: open failed: EACCES (Permission denied)
I'm trying not to ask ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION.
How to let my app access those already exist files without using file selector?

Related

java.io.FileNotFoundException: /cache/test/test.txt: open failed: EACCES (Permission denied)

I am trying to copy the file from /storage/emulated/0/test.txt to /cache/SH_DIR/ via android user application ,
getting error like below
java.io.FileNotFoundException: /cache/test/test.txt: open failed: EACCES (Permission denied)
When I have created as system application like , Included Application code as past of AOSP then able to copy the file to /cache/SH_DIR/ location.
May I need to add anything in the SEpolicy to copy file to /cacahe/SH_DIR/ from user application.
Can you please help me , Thanks in advance

How to read files placed in root-folder?

I want to know how to read files placed in root folder. For instance let's take file /init.trace.rc. When I'm trying to read it I get exception:
java.io.FileNotFoundException: /init.trace.rc: EACCES (Permission denied)
I thought that I need to get superuser access. I did it but that made no difference ((( I still can't read it. Could anybody help me? ...and also I wonder how file explorers like "RootExplorer" read that stuff?
apparently this is all you need to run to get root access:
Process root = Runtime.getRuntime().exec("su");
taken from:
How can I get root permissions through the Android SDK?

Android Exception : java.io.IOException: open failed: EACCES (Permission denied) [duplicate]

This question already has answers here:
Exception 'open failed: EACCES (Permission denied)' on Android
(34 answers)
Closed 8 years ago.
For some strange reason, am constantly facing an issue with different types of Android devices, for saving the captured images on the device storage.
Here, is the detailed error log, of what, actually am getting.
java.io.IOException: open failed: EACCES (Permission denied)
at java.io.File.createNewFile(File.java:940)
at com.parkhya.pick_for_shareAflash.HomeActivity.resizeImage(HomeActivity.java:456)
at com.parkhya.pick_for_shareAflash.HomeActivity.onActivityResult(HomeActivity.java:393)
Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
at java.io.File.createNewFile(File.java:933)
Although, all the other Android apps, like, Instagram and others, are able to save the camera clicked images on the devices.
Anybody, can you please suggest, what should I do, in order for my app, to save the camera pictures in sdcard.
This may help you. I face the same issue when writing the file on sdcard. I have set all required permission to write the file but I used the file object like below:
Wrong:
File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+fileName);
Correct:
File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), fileName);
That means the path was wrong.
Solution what i find is
edit the Emulator
1. go to android virtual device manager and then edit the emulator
2. set say 100 MB for Sd card for the respected emulator and say Ok
3. save and close emulator and start
4. path saved is click DDMS mnt/sdcard/yourfilename
it worked for me the app is not giving Error and is working

Store a File in Android from a JAR File

I am writing some backend interface code for an Android App. I would like to package up the backend api in a jar file and include it as a lib in the main app. (I have the same problem even it it's a library project).
One of the features of this api is to download a file from a remote server. I have a method which I pass the "root path" into the api.
public void storeRemoteFile(String rootPath)
The method starts a thread, and in the background grabs the file and stores it to the roothPath. I have no problems running this code in the Console, and the file gets downloaded to my PC. So calling this method in a class that lives in the jar file gives me a file permissions error.
java.io.FileNotFoundException: /storage/adcard0/Android/data/com.myapp/files/temp.zip: open failed: EACCES (Permission denied)
Is there any way to give the api permissions to write the file? If not, are there any suggestions on how to allow the api jar to download the file, and pass it up the main app for storage?
Ensure you have
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
In your Manifest.

java.io.FileNotFoundException: /sdcard/DCIM/ROBIN.jpg (No such file or directory)

I'm getting an error on the following line of code:
FileInputStream is = new FileInputStream("/sdcard/DCIM/ROBIN.jpg");
The error is:
java.io.FileNotFoundException: /sdcard/DCIM/ROBIN.jpg (No such file or directory)
But the image is present in the directory
My USB connection is Charge only
Never hardcode paths like /sdcard. For example, /sdcard is wrong on most Android devices. Use Environment.getExternalStorageDirectory() to find the root of external storage.
Make sure you have set the permission WRITE_EXTERNAL_STORAGE in your manifest.

Categories

Resources