Android4.0 中关于内外置sd卡——读写及权限问题

2023-11-04

   在android4.0源码出来以后,关于sd卡问题似乎没有解决好,起码上层api中没有体现到位。其实在framework层中有相应的类去获得内外置sd卡信息,是否可读写的权限。

 

在2.x的版本中,在manifest中配置的权限android.permission.WRITE_EXTERNAL_STORAGE

确实是用来使得sd卡获得写的权限。而在4.0开发的源码当中,由于有了内外置sd卡的区分,

android.permission.WRITE_EXTERNAL_STORAGE的权限用来设置了内置sd卡的写权限,

如果在manifest中只是配置了这个权限,那个应用只能在内置sd卡中进行写操作,还是无法在外置sd卡中进行写操作。

需要写外置sd卡的话,需要配置另一个权限android.permission.WRITE_MEDIA_STORAGE,

这样就可以在外置sd卡中进行写入操作了。

这两个权限都被定义在 android源码目录\frameworks\base\data\etc\platform.xml中:

 

    <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
        <group gid="sdcard_rw" />
    </permission>

    <permission name="android.permission.WRITE_MEDIA_STORAGE" >
        <group gid="media_rw" />
    </permission>


使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。

 

StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,

从而可以获得对应存储是否可读写一类的信息。

希望可以帮助遇到相同问题的童鞋。

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android4.0 中关于内外置sd卡——读写及权限问题 的相关文章

  • Android 布局不需要的填充

    所以我有这个布局文件 如下 正如您所看到的 没有填充或边距 dimen xml 文件也没有任何填充 边距 最后 我根本不以编程方式更改布局
  • Android STFP 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在我的 Android 项目中使用 SFTP 安卓已经有了吗 SFTP 库 还是我必须实现它 I
  • 删除视图并重新创建它

    有没有办法删除设置的视图 setContentView R layout set map center mapView MapView findViewById R id mapview 如果我再次调用此视图 则会收到一条错误消息 java
  • IntentService、Service 或 AsyncTask

    实现这一点的最佳方法是什么 我有一个 Android 应用程序 它将使用我的 python 服务器来允许两部手机之间进行轮流通信 回合意味着他们在一轮开始之前不能互相交谈 一旦他们发送一条消息 他们就不能发送另一条消息 直到对方做出回应 然
  • Mesibo 通话 UI 未更新

    我正在尝试更改 Mesibo Call UI 的配置 但它并没有改变 我尝试如下 MesiboCallConfig mesiboCallConfig new MesiboCallConfig mesiboCallConfig backgro
  • Android/Java 创建辅助类来创建图表

    Goal 创建用于图形生成的辅助类 背景 我有 3 个片段 每个片段收集一些传感器数据 加速度计 陀螺仪 旋转 并使用 GraphView 绘制图表 以下是其中一个片段的代码 该代码当前工作正常 public class Gyroscope
  • Android:拍照后调用裁剪活动

    我在解析拍摄照片的 uri 来裁剪活动时遇到问题 在我的应用程序中 用户可以拍摄一张照片或从图库中选择一张照片 然后裁剪并上传 一切听起来都很简单 从图库中选择时 图库应用程序会返回所选照片的 uri 如下所示 content media
  • 有没有办法替代Android中的标准Log?

    有没有办法以某种方式拦截对 android 中标准 Log 的调用并执行其他操作 在桌面 Java 中 人们通常会得到一些记录器 因此有多种方法可以安装不同的日志处理程序 实现 但是 Android似乎对Log有静态调用 我找不到任何有关替
  • 错误 libGL.so:无法使用 Android 模拟器打开共享对象文件

    我试图在 Ubuntu 12 04 64 位 中运行 android 模拟器 但是 我收到以下错误 Starting emulator for AVD emulatr Failed to load libGL so error libGL
  • AOSP 中 android.Build.SERIAL 何时何地生成?

    我知道android Build SERIAL是在第一次设备启动时生成的 但我无法准确定位位置和时间 我正在建造AOSP Jelly Bean Android平板电脑 nosdcard 第二个问题 这个是序列号吗 really对所有人来说都
  • 仅在 Android 应用程序中使用 XHDPI 可绘制对象?

    如果您计划在不久的将来支持 LDPI MDPI HPDI 或许还有 XHDPI 那么是否可以在项目中仅包含 XHDPI 可绘制对象并让设备将其缩放到所需的分辨率 我已经测试过在 Photoshop 中将可绘制对象的大小调整为 MDPI 和
  • 当编辑文本获得焦点时更改边框颜色

    我想知道当编辑文本聚焦时如何更改它的边框颜色 目前它看起来像这样 我尝试过在SDK中检查源图片 但我无法理解它 我也尝试过使用xml 但无法仅更改边框颜色 如果我找到源图片 我可以在 Photoshop 中编辑以更改颜色 有什么关于如何执行
  • Kotlin 和惯用的书写方式,基于可变值“如果不为空,则...”

    假设我们有这样的代码 class QuickExample fun function argument SomeOtherClass if argument mutableProperty null doSomething argument
  • 返回主要活动(意图)时传递数据我做错了什么?

    我是安卓新手 这可能是最简单的问题 但我不明白这里出了什么问题 我试图创建一个通过意图传递值的基本示例 因此 当我关闭第二个活动时 我需要将数据传递到主活动 这是代码 意图测试1 主要活动 public void onClick View
  • 如何在虚拟机 VirtualBox 上运行 Android-x86 4.2 iso?

    我想用Android x86测试和调试我的应用程序 我之前成功尝试过其他版本的Android x86 但是关于android x86 4 2有一个错误 所以我在这里问我的问题 因为它可能会发生在其他人身上 我安装了oracle VM vir
  • Android 发布到 facebook 墙,stream.publish 几天来就中断了

    我有很多使用 FB android sdk 发布的应用程序 github com facebook facebook android sdk 我所有使用 FB 的应用程序几天后就停止工作了 这必然是 FB 方面的更改或错误 因为我的应用程序
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 如何让用户在android列表视图中选择主题?

    我有一个带有两个标签的列表视图 标题和副标题 我想要深色和浅色背景作为用户选项 标题具有 textAppearanceMedium 副标题具有 textAppearanceSmall 我希望样式 MyTheme Dark 具有白色文本 My
  • 我可以通过在 Android Activity 中声明适当的成员“静态”来提高效率吗

    如果一个 Activity 在实践中是单例 我认为我可以通过声明适当的成员 静态 来获得一些效率 且风险为零 是的 The Android 文档说 http developer android com guide topics fundam

随机推荐

  • 头歌python实训通关四——分支结构

    第1关 英制单位英寸与公制单位厘米互换 任务描述 本关任务 编写一个能实现单位英寸与公制单位厘米的互换的函数 相关知识 为了完成本关任务 你需要掌握 1 if条件语句 编程要求 根据提示 在右侧编辑器补充代码 实现单位英寸与公制单位厘米互换
  • 关于 private static final long serialVersionUID = 1L

    实现java io Serializable这个接口是为序列化 serialVersionUID 用来表明实现序列化类的不同版本间的兼容性 如果你修改了此类 要修改此值 否则以前用老版本的类序列化的类恢复时会出错 实现后如果你用的是工具的话
  • Java内省机制

    Wiki上的解释 在计算机科学中 内省是指计算机程序在运行时 Run time 检查对象 Object 类型的一种能力 通常也可以称作运行时类型检查 不应该将内省和反射混淆 相对于内省 反射更进一步 是指计算机程序在运行时 Run time
  • Log4Net(Logging for DotNet)学习笔记

    系统支持 SystemFramework 提供系统的框架支持 典型的 如异常 日志等 也有现成的 比如log4net 突然一种老朋友似的感觉涌上心头 这不是我一直想要得到的吗 一直想在的我系统加入的东西吗 日志系统 嘿嘿 高兴啊 本文从一个
  • 开源数据库对比 H2, HSQLDB, DERBY, PostgreSQL, MySQL

    H2 HSQLDB DERBY PostgreSQL MySQL
  • 接口复习总结

    第一章微型计算机系统概述 1 计算机硬件系统 运算器 控制器 存储器 输入和输出设备 2 接口的功能 I O端口编址方式 统一编址和独立编址 CPU与接口数据交换技术 无条件方式 控制简单 无需额外的硬件支出 CPU和外设之间只能串行工作
  • PyQt5执行shell

    代码如下 from PyQt5 QtCore import QProcess from PyQt5 QtWidgets import QWidget QApplication QVBoxLayout QLineEdit QTextEdit
  • 机器学习基础(一)——人工神经网络与简单的感知器

    机器学习基础 一 人工神经网络与简单的感知器 2012 07 04 19 57 20 转载 标签 杂谈 分类 machine learning 从最开始做数据挖掘而接触人工智能的知识开始 就不断听学长 老师说起神经网络算法 从这个角度来讲
  • tensorflow41《TensorFlow实战》笔记-08-02 TensorFlow实现深度强化学习-估值网络 code

    01强化学习简介 深度强化学习 Deep Reinforcement Learning 环境状态 Environment State 行动 Action 奖励 Reward 通过连续决策 采用最好的行动 获得最高的奖励 延迟奖励和未来利益
  • OkHttp原理分析总结

    OkHttp原理解析 OkHttp 3 10 0版本 最新OkHttp为 4 0 1逻辑与3版本并没有太大变化 但是改为kotlin实现 OkHttp介绍 OkHttp是当下Android使用最频繁的网络请求框架 由Square公司开源 G
  • 源生JS 之对象key值为数字时的取值及修改key值方法

    取值 如果对象key值为数字使用 key 0 无法取到对应值 只需稍加修改obj 0 即可取到对应值 修改 与取值同理 打印效果对比处理前后 可以看到将原始key值为0 1 2修改为目标key值
  • 蓝桥杯——数组切分(JAVA)

    题目 已知一个长度为 N 的数组 A1 A2 A3 AN 恰好是 1 N 的一个排列 现 在要求你将 A 数组切分成若干个 最少一个 最多 N 个 连续的子数组 并且 每个子数组中包含的整数恰好可以组成一段连续的自然数 例如对于 A 1 3
  • Python开发环境Spyder介绍

    前言 嗨喽 大家好呀 这里是爱看美女的茜茜呐 Spyder简介 Spyder 前身是 Pydee 是一个强大的交互式 Python 语言开发环境 提供高级的代码编辑 交互测试 调试等特性 支持包括 Windows Linux 和 OS X
  • Anaconda安装包 报错packagesNotFoundError: The following packages are not available from current channels:

    报错 去网址 https anaconda org 选择想要安装的版本 点进去 在Anaconda上 输入命令 安装成功 如果按以上方法输命令也无法成功安装 可以试试换版本 或者离线安装
  • 嵌入式arm Linux下使用BusyBox的crond服务的定时任务方法 之前的程序有问题tcp经常中断,程序还在,linux端口还在占用10777,tcp能连一会就断了,暂时用定时重启

    keepalive sh 守护及定时任务脚本 bin sh 定时每天1 30重启应用程序 先关闭crond killall 9 crond 创建目录 默认是没有的 mkdir p var spool cron crontabs 编辑定时任务
  • 分苹果

    描述 把M个同样的苹果放在N个同样的盘子里 允许有的盘子空着不放 问共有多少种不同的分法 注意 假如有3个盘子7个苹果 5 1 1和1 5 1 是同一种分法 输入 t 表示测试组数 t lt 10 然后t行 每行包含两个数M N 1 lt
  • Qt信号槽连接失败的两种情况

    Qt的信号槽在平常工作中用的很多 今天在调试程序的时候 出现了两种链接失败的情况 链接代码如下 bool b connect this SIGNAL signalTest std string unsigned int SLOT onTes
  • C++ 类和对象-封装

    C 面向对象的三大特征为 封装 继承 多态 C 认为所有事物都能成为对象 对象上有其属性和行为 例如 人可以作为对象 属性有姓名 年龄 身高 行为有走 跑 跳 车可以作为对象 属性有轮胎 车灯 方向盘 行为有载人 放音乐 封装 属性和行为作
  • Linux循环

    for循环迭代 for var in list do commands done 或 for C语言格式 以上为for循环格式 其中的list可以为字符串 通过IFS分隔 也可以为序列 序列生成方式如下 1 5 a z A Z while循
  • Android4.0 中关于内外置sd卡——读写及权限问题

    在android4 0源码出来以后 关于sd卡问题似乎没有解决好 起码上层api中没有体现到位 其实在framework层中有相应的类去获得内外置sd卡信息 是否可读写的权限 在2 x的版本中 在manifest中配置的权限android