问题
Are there any permissions I can/must declare in my app,
if I want the app to be able to scan the whole "/" folder
(say to search for all .txt
files e.g. recursively)?
I am getting just null
so far (when calling File.listFiles
)
no matter what permissions I try. I guess I am missing something.
回答1:
Unless you root your device, it is impossible to do any operations on the root directory on a non-rooted device because a third party app will run as a normal user and won't have the root permissions.
However, according to https://developer.android.com/reference/android/Manifest.permission, android.permission.FACTORY_TEST
can give you the root permission.
FACTORY_TEST added in API level 1
public static final String FACTORY_TEST
Run as a manufacturer test application, running as the root user. Only available when the device is running in manufacturer test mode.
Not for use by third-party applications.
Constant Value: "android.permission.FACTORY_TEST"
But note this can only be used by manufacturers by modifying the firmware, and this is not for any third part libraries or applications.
回答2:
Are there any permissions I can/must declare in my app?
No. In order to access the root (/) folder your app must have a root permission which a user app can't have.
If your device is rooted, you can try to elevate the root rights from within the app which isn't a trivial task.
来源:https://stackoverflow.com/questions/52212997/permission-for-reading-writing-to-the-root-folder-in-android