在LINUX下每个文件都有一个权限的属性 ,那么在Android中怎么用java改变某个文件的权限呢?
Android中有两种方法可以改变文件的权限
1. 用openFileOutput方法:
view plaincopy to clipboardprint?
01.FileOutputStream fos;
02.fos = openFileOutput("filename", MODE_WORLD_READABLE);
FileOutputStream fos;
fos = openFileOutput("filename", MODE_WORLD_READABLE);
FileOutputStream android.content.ContextWrapper .openFileOutput(String name, int mode) throws FileNotFoundException
Open a private file associated with this Context's application package for writing. Creates the file if it doesn't already exist.
可用的mode 参数如下:
/**
* File creation mode: the default mode, where the created file can only
* be accessed by the calling application (or all applications sharing the
* same user ID).
* @see #MODE_WORLD_READABLE
* @see #MODE_WORLD_WRITEABLE
*/
public static final int MODE_PRIVATE = 0x0000;
/**
* File creation mode: allow all other applications to have read access
* to the created file.
* @see #MODE_PRIVATE
* @see #MODE_WORLD_WRITEABLE
*/
public static final int MODE_WORLD_READABLE = 0x0001;
/**
* File creation mode: allow all other applications to have write access
* to the created file.
* @see #MODE_PRIVATE
* @see #MODE_WORLD_READABLE
*/
public static final int MODE_WORLD_WRITEABLE = 0x0002;
/**
* File creation mode: for use with {@link #openFileOutput}, if the file
* already exists then write data to the end of the existing file
* instead of erasing it.
* @see #openFileOutput
*/
public static final int MODE_APPEND = 0x8000;
其实该方法最终还是调用了系统的chmod来实现的改变文件权限的功能。
但是该方法有局限性,他创建的文件只能位于该程序的私有目录下,即/data/data/app-package/files/
2. 用Runtime.getRuntime().exec()
view plaincopy to clipboardprint?
01.Runtime.getRuntime().exec("chmod 644 " + filename);
Runtime.getRuntime().exec("chmod 644 " + filename);
该方法调用系统命令chmod来改变文件的权限,为了能判断命令的返回值,最好写成:
view plaincopy to clipboardprint?
01.Process p = Runtime.getRuntime().exec("chmod 644 " + filename);
02.int status = p.waitFor();
03.if (status == 0) {
04. //chmod succeed
05.} else {
06. //chmod failed
07.}
分享到:
相关推荐
5. **修改文件权限**:在Linux(包括Android)系统中,文件权限由read(读)、write(写)和execute(执行)三个基本权限组成,分别用r、w、x表示。这些权限可以针对文件所有者、同一组用户和其他用户进行设置。修改...
从Android Q开始,外部存储的访问模式有所改变,应用不再可以直接访问所有文件,而是通过`MediaStore` API或`DocumentFile` API来访问特定的文件或目录。即使应用具有`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_...
本文将全面解析Android配置文件中的各种权限,帮助开发者理解和正确使用这些权限。 首先,`android.permission.ACCESS_CHECKIN_PROPERTIES`允许应用程序读取或写入登记check-in数据库属性表,这通常用于系统级别的...
网上好多不会修改android串口的权限,上传脚本文件供大家使用,公司真实环境无私奉献出来。
本篇将深入探讨Android中的文件权限及其应用。 首先,我们要知道在Android中,每个应用程序都运行在自己的沙箱环境中,这意味着它们默认不能访问其他应用的数据,除非明确授予了相应的权限。Android通过`...
- `android.permission.WRITE_EXTERNAL_STORAGE`:允许写入外部存储(SD卡),用于保存或修改文件。 - `android.permission.ACCESS_CHECKIN_PROPERTIES`:读取或写入设备注册信息,通常由系统服务使用。 - `android....
1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...
在Android系统中,ROOT权限是最高级别的用户权限,允许用户访问和修改系统核心文件和设置。通常,Android设备出厂时,这些权限被限制在系统层级,以保护设备安全和稳定性。然而,对于开发者或者喜欢自定义设备的用户...
在Android系统的发展历程中,Android 6.0(Marshmallow)引入了一项重大改变,即运行时权限(Runtime Permissions)机制。这个改变显著地影响了应用程序如何处理用户权限,特别是对于那些需要敏感权限如访问联系人、...
- 获取SharedPreferences实例:通常在Activity或Fragment中,通过`getSharedPreferences(String name, int mode)`方法获取,其中`name`是配置文件的名称,`mode`定义了访问权限。 - 创建SharedPreferences.Editor...
此外,考虑到Android系统的权限管理,如果更新的文件需要在运行时被应用访问,确保在AndroidManifest.xml中添加了对应的读写权限: ```xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_...
在Android 6.0(Marshmallow)中,系统引入了重要的权限管理模型的改变,即运行时权限(Runtime Permissions)。这个重大更新对于开发者和用户都带来了显著的影响。在此"Android 6.0运行权限Demo"中,展示了如何在...
注意在Android 10(API级别29)之后,外部存储的访问方式有所改变,需要使用`getExternalFilesDir()`或`getExternalCacheDir()`方法来获取特定应用的外部存储目录。 以上就是关于Android平台上进行TXT文件保存和...
通过分析这个文件,开发者可以深入理解权限申请的实现细节,或者根据需要进行定制修改。 综上所述,AndPermission库是Android开发中处理权限问题的强大工具,它简化了权限申请的过程,支持链式调用,同时考虑了国内...
因此,如果需要修改文件权限,可以通过修改`android_filesystem_config.h`文件来添加所需权限,然后重新编译make_ext4fs。 ### 打包注意事项 在使用make_ext4fs制作修改分区大小时,必须确保`-l`参数后指定的分区...
本文将深入探讨Android的分区存储机制,并详细讲解如何修改和删除图片文件。 一、Android分区存储概述 Android系统为了保护用户隐私和提高安全性,引入了分区存储的概念。在Android 10(API级别29)及更高版本中,...
应对用户改变权限状态进行充分测试,确保应用在各种情况下都能正常运行。 4. **适配不同Android版本** 不同Android版本对权限的处理方式有所不同,代码需兼容旧版本系统。 综上所述,Android权限管理是开发中不...
Android权限设置大全 ...这些权限都可以在AndroidManifest.xml文件中声明,用于申请访问设备的某些功能或数据。开发者需要根据应用程序的需求声明相应的权限,以便在应用程序中访问相应的功能或数据。
1. **权限被锁定**:Android系统通常会加密和签名系统分区,包括`system`分区,防止未经授权的修改。这意味着即使在获得root权限后,直接修改`cmd`的权限也可能被系统阻止。 2. ** SELinux策略**:SELinux...