`
quanminchaoren
  • 浏览: 926153 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android改变文件的权限

阅读更多
在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.}   
分享到:
评论

相关推荐

    Android修改系统文件访问权限

    5. **修改文件权限**:在Linux(包括Android)系统中,文件权限由read(读)、write(写)和execute(执行)三个基本权限组成,分别用r、w、x表示。这些权限可以针对文件所有者、同一组用户和其他用户进行设置。修改...

    android文件读写权限

    从Android Q开始,外部存储的访问模式有所改变,应用不再可以直接访问所有文件,而是通过`MediaStore` API或`DocumentFile` API来访问特定的文件或目录。即使应用具有`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_...

    Android配置文件权限大全

    本文将全面解析Android配置文件中的各种权限,帮助开发者理解和正确使用这些权限。 首先,`android.permission.ACCESS_CHECKIN_PROPERTIES`允许应用程序读取或写入登记check-in数据库属性表,这通常用于系统级别的...

    android 修改串口读写权限

    网上好多不会修改android串口的权限,上传脚本文件供大家使用,公司真实环境无私奉献出来。

    Android文件访问权限(第二个)

    本篇将深入探讨Android中的文件权限及其应用。 首先,我们要知道在Android中,每个应用程序都运行在自己的沙箱环境中,这意味着它们默认不能访问其他应用的数据,除非明确授予了相应的权限。Android通过`...

    Android AndroidManifest 清单文件所有权限详解.doc

    - `android.permission.WRITE_EXTERNAL_STORAGE`:允许写入外部存储(SD卡),用于保存或修改文件。 - `android.permission.ACCESS_CHECKIN_PROPERTIES`:读取或写入设备注册信息,通常由系统服务使用。 - `android....

    Android端获取串口列表,修改串口权限,关闭系统串口打印,读写串口。.zip

    1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...

    开放android系统ROOT权限SU

    在Android系统中,ROOT权限是最高级别的用户权限,允许用户访问和修改系统核心文件和设置。通常,Android设备出厂时,这些权限被限制在系统层级,以保护设备安全和稳定性。然而,对于开发者或者喜欢自定义设备的用户...

    Android6.0权限DEMO

    在Android系统的发展历程中,Android 6.0(Marshmallow)引入了一项重大改变,即运行时权限(Runtime Permissions)机制。这个改变显著地影响了应用程序如何处理用户权限,特别是对于那些需要敏感权限如访问联系人、...

    Android读写配置文件

    - 获取SharedPreferences实例:通常在Activity或Fragment中,通过`getSharedPreferences(String name, int mode)`方法获取,其中`name`是配置文件的名称,`mode`定义了访问权限。 - 创建SharedPreferences.Editor...

    android 更新文件

    此外,考虑到Android系统的权限管理,如果更新的文件需要在运行时被应用访问,确保在AndroidManifest.xml中添加了对应的读写权限: ```xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_...

    Android 6.0运行权限Demo

    在Android 6.0(Marshmallow)中,系统引入了重要的权限管理模型的改变,即运行时权限(Runtime Permissions)。这个重大更新对于开发者和用户都带来了显著的影响。在此"Android 6.0运行权限Demo"中,展示了如何在...

    android txt文件保存读取操作

    注意在Android 10(API级别29)之后,外部存储的访问方式有所改变,需要使用`getExternalFilesDir()`或`getExternalCacheDir()`方法来获取特定应用的外部存储目录。 以上就是关于Android平台上进行TXT文件保存和...

    Android-Android权限申请运行时权限未知应用安装权限悬浮窗权限显示通知和访问通知权限

    通过分析这个文件,开发者可以深入理解权限申请的实现细节,或者根据需要进行定制修改。 综上所述,AndPermission库是Android开发中处理权限问题的强大工具,它简化了权限申请的过程,支持链式调用,同时考虑了国内...

    android ext4文件系统打包详解

    因此,如果需要修改文件权限,可以通过修改`android_filesystem_config.h`文件来添加所需权限,然后重新编译make_ext4fs。 ### 打包注意事项 在使用make_ext4fs制作修改分区大小时,必须确保`-l`参数后指定的分区...

    【Android 文件管理】分区存储 ( 修改与删除图片文件 )

    本文将深入探讨Android的分区存储机制,并详细讲解如何修改和删除图片文件。 一、Android分区存储概述 Android系统为了保护用户隐私和提高安全性,引入了分区存储的概念。在Android 10(API级别29)及更高版本中,...

    Android permission 访问权限大全

    应对用户改变权限状态进行充分测试,确保应用在各种情况下都能正常运行。 4. **适配不同Android版本** 不同Android版本对权限的处理方式有所不同,代码需兼容旧版本系统。 综上所述,Android权限管理是开发中不...

    android权限设置大全

    Android权限设置大全 ...这些权限都可以在AndroidManifest.xml文件中声明,用于申请访问设备的某些功能或数据。开发者需要根据应用程序的需求声明相应的权限,以便在应用程序中访问相应的功能或数据。

    Android 设置/system/bin/cmd的权限遇到的问题

    1. **权限被锁定**:Android系统通常会加密和签名系统分区,包括`system`分区,防止未经授权的修改。这意味着即使在获得root权限后,直接修改`cmd`的权限也可能被系统阻止。 2. ** SELinux策略**:SELinux...

Global site tag (gtag.js) - Google Analytics