`
CshBBrain
  • 浏览: 654723 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
B7d9bf34-126e-301f-819e-81f2615b5a2a
开源WebSocket服务...
浏览量:145922
Group-logo
HTML5移动开发
浏览量:138764
社区版块
存档分类
最新评论

Android 写文件权限

 
阅读更多

转自:http://wingjang.blog.163.com/blog/static/4791344220110142319369/

 

首先,在manifest.xml中添加user permission:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

代码中,
             String path = "http://192.168.1.22:8088/4";
            URL url = new URL(path);
            URLConnection cn = url.openConnection();
            cn.connect();
            InputStream stream = cn.getInputStream();
            if (stream == null)
                throw new RuntimeException("stream is null");
            File temp = new File("/data/data/com.dilifetech/mediaplayertmp");//com.dilifetech是package name
            temp.createNewFile();
            String tempPath = temp.getAbsolutePath();
            FileOutputStream out = new FileOutputStream(temp);
            byte buf[] = new byte[128]; 
            do {
                int numread = stream.read(buf);
                if (numread <= 0)
                    break;
                out.write(buf, 0, numread);
                } while (true);
            mp.setDataSource(tempPath);
            stream.close();

android系统中的文件权限:
Android有一套自己的安全模型, 具体可参见Android开发文档。当应用程序(.apk)在安装时就会分配一个userid,当该应用要去访问其他资源比如文件的时候,就需要 userid匹配。默认情况下 ,任何应用创建的文件,数据库, sharedpreferences都应该是私有的(位于/data/data/your_project/files/),其余程序无法访问。除非在创 建时指明是MODE_WORLD_READABLE 或者 MODE_WORLD_WRITEABLE,只要这样其余程序才能正确访问。

因为有这种Android读写文件的方法在安全上有所保障,进程打开文件时Android要求检查进程的user id。所以不能直接用java的api来打开,因为java的io函数没有提这个机制 。无法用java的api直接打开程序私有的数据 ,默认路径为/data/data/your_project/files/

  1. FileReader file = new FileReader("Android.txt"); 

这里特别强调私有数据!言外之意是如果某个文件或者数据不是程序私有的,既访问它时无须经过Android的权限检查,那么还是可以用java的io api来直接访问的。所谓的非私有数据是只放在sdcard上的文件或者数据,可以用java的io api来直接打开sdcard上文件。

  1. FileReader file = new FileReader("/sdcard/Android.txt"); 

如果要打开程序自己私有的文件和数据,那必须使用Activity提供openFileOutput和openFileInput方法。

创建程序私有的文件,由于权限方面的要求,必须使用activity提供的Android读写文件方法

  1. FileOutputStream os = this.openFileOutput("Android.txt", MODE_PRIVATE);  
  2. OutputStreamWriter outWriter = new OutputStreamWriter (os); 

读取程序私有的文件,由于权限方面的要求,必须使用activity提供的方法

  1. FileInputStream os =this.openFileInput("Android.txt");  
  2. InputStreamReader inReader = new InputStreamReader(os);
分享到:
评论

相关推荐

    android文件读写权限

    总结来说,Android文件读写权限管理是一个复杂的过程,开发者需要在`AndroidManifest.xml`中声明权限,并在Android 6.0及以上版本中处理运行时权限请求。随着Android版本的更新,如Android Q,文件访问方式也会相应...

    Android 13读写权限变更,小米14 txt 文件读写

    以前,应用可以通过`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限访问所有公共外部存储空间,但Android 13开始,这些权限不再适用于访问用户的个人文件。现在,应用需要使用`MANAGE_EXTERNAL_STORAGE`权限...

    Android修改系统文件访问权限

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

    Android 读写文件实例

    在Android平台上,对文件进行读写操作是应用程序中常见的需求,比如存储用户数据、缓存信息或者媒体资源。本文将详细讲解如何在Android系统中进行SD卡和内部存储的读写,以及如何获取文件目录。 ### 1. Android权限...

    Android不需要文件存储权限将文件保存至手机

    在Android系统中,传统的文件存储方式通常需要应用获取相应的文件读写权限,以便在外部存储(如SD卡)上保存和访问数据。然而,随着Android系统的更新,特别是自Android 6.0(Marshmallow)引入运行时权限管理以来,...

    Android文件目录及文件访问权限等详解Demo

    应用可以在此创建文件,但必须遵循Android的文件权限规则。`Environment.getExternalStorageDirectory()`方法可以获取到外部存储的根目录。 2. **内部存储(Internal Storage)**:这是应用程序私有的存储空间,...

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

    在Android中,文件权限主要分为三类:读(Read)、写(Write)和执行(Execute)。这些权限可以分别赋予用户、用户组和其他用户。一个文件的权限由一个九位的字符串表示,如"rwxr-xr--",其中每一位代表相应的用户...

    android 修改串口读写权限

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

    Qt移动开发-Android上实现本地文件读写.zip

    本文将深入探讨如何在Qt 5.12.6版本下实现在Android设备上动态申请存储权限,并进行文件操作,如创建目录、创建文件以及读写文件。 首先,为了在Android设备上进行文件操作,你需要遵循Android的权限管理系统。自...

    android读写文件例程

    自Android 6.0(API级别23)起,运行时权限管理引入,读写文件可能需要请求`WRITE_EXTERNAL_STORAGE`和`READ_EXTERNAL_STORAGE`权限。在AndroidManifest.xml中添加如下权限声明,并在运行时检查并请求权限: ```...

    Android JNI 用C函数写本地库读写文件,底层调用小例子

    在Android开发中,JNI(Java Native Interface)是一个关键的技术,它允许Java代码和其他语言写的代码进行交互。这个小例子展示了如何使用JNI和C语言来创建一个本地库,用于执行文件的读写操作,从而实现底层的高效...

    Android 实现读写U盘文件

    在Android平台上,与U盘进行文件的读写操作并不像在桌面系统中那样直接,因为Android设备通常不直接支持USB主机模式(Host Mode)。然而,借助第三方库如libaums,我们可以实现这一功能。libaums是Android上一个用于...

    Android U盘插拔监听以及U盘写入权限解决办法

    在Android系统中,由于安全性和隐私保护的考虑,对USB设备的访问,特别是U盘的插拔监听和写入权限的获取,相比其他操作系统更为复杂。这篇内容将深入讲解如何在Android应用程序中实现U盘插拔的监听以及解决U盘写入...

    Qt for android 动态权限申请

    即使在运行时请求权限,也需要在应用的AndroidManifest.xml文件中声明所需的权限。 ```xml &lt;uses-permission android:name="android.permission.READ_CONTACTS" /&gt; ``` 以上是一个基本的Qt for Android动态...

    Android私有储存文件和外部储存文件读写(适配6.0以上权限,不考虑SD卡)

    本文将深入探讨如何在Android 6.0及以上版本中读写私有储存文件和外部储存文件,并适配新的权限管理机制。 首先,私有储存是每个应用程序专属的空间,只有该应用有权访问。私有储存的根目录可以通过`Context....

    Android USB检测,文件读写demo

    同时,要注意Android版本间的差异,如在Android 6.0及以上版本,USB文件访问可能需要运行时权限。 总的来说,理解并实现"Android USB检测,文件读写demo",不仅能够让你掌握USB设备管理的基本操作,还能提升你在...

    android 手写绘画支持权限获取

    以下是关于"android 手写绘画支持权限获取"的详细解释: 一、触摸事件处理 在Android中,应用程序可以通过重写`View`类的`onTouchEvent(MotionEvent event)`方法来捕获用户的触摸动作。`MotionEvent`对象包含了触摸...

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

    在Android中,文件权限主要分为三类:读(read)、写(write)和执行(execute)。对于一个文件,可以为所有者(owner)、用户组(group)和其他用户(others)分别设置这些权限。在代码中,可以使用`File....

    Android 串口通信权限问题

    这些库通常提供了更友好的API来处理权限问题,但依然需要确保在manifest文件中声明它们所需的权限。 5. **USB串口访问**:对于通过USB连接的串口设备,需要使用`usbAccessory`或`usbDevice`权限,同时实现`...

Global site tag (gtag.js) - Google Analytics