原文地址:
http://developer.android.com/intl/zh-cn/reference/android/os/Environment.html#getExternalStoragePublicDirectory%28java.lang.String%29
public static File getExternalStoragePublicDirectory (String type)
为放置一个特殊类型的文件获得顶级的public的外部存储路径。因为这是一般用户放置和管理他们自己文件的位置,所以你需要很小心的知道你把什么放在这个位置,确保你不会删除他们的文件或者妨碍他们自己的
组织结构。
在多用户设备(由UserManager描述),每个用户有他们自己的独立外部存储。应用
只能够有权使用正在运行的用户的外部存储。
这是一段在public外部存储上操作图片的标准编码例子。
void createExternalStoragePublicPicture() { // 在用户的public图片路径下创建一个我们需要放置我们的图片的路径 // 注意,对于你放置在这的内容你需要很小心,因为用户通常管理这些文件。 // 对于应用的图片和其他媒体考虑使用 Context.getExternalMediaDir(). File path = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES); File file = new File(path, "DemoPicture.jpg"); try { //确保图片路径存在 path.mkdirs(); // 非常简单的代码,把应用资源的图片copy为外部存储文件。 // 注意编码没有错误检查,并且假设图片很小(不试图在块中对他做copy) // 注意如果外置存储当前没有被挂载,会是失败的。 InputStream is = getResources().openRawResource(R.drawable.balloons); OutputStream os = new FileOutputStream(file); byte[] data = new byte[is.available()]; is.read(data); os.write(data); is.close(); os.close(); // 告知媒体扫描关于这个,以便可以让用户立即获得。 MediaScannerConnection.scanFile(this, new String[] { file.toString() }, null, new MediaScannerConnection.OnScanCompletedListener() { public void onScanCompleted(String path, Uri uri) { Log.i("ExternalStorage", "Scanned " + path + ":"); Log.i("ExternalStorage", "-> uri=" + uri); } }); } catch (IOException e) { // 不能穿件文件,例如因为外置存储没有被挂载。 Log.w("ExternalStorage", "Error writing " + file, e); } } void deleteExternalStoragePublicPicture() { // 在用户public的图片目录下创建一个我们要放置图片的路径。 //如果没有挂载侧失败 File path = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES); File file = new File(path, "DemoPicture.jpg"); file.delete(); } boolean hasExternalStoragePublicPicture() { //在用户public的图片目录下创建一个我们要放置图片的路径并检查文件是否存在。 //如果没有被挂载则图片不存在。 File path = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES); File file = new File(path, "DemoPicture.jpg"); return file.exists(); }
Context.getExternalMediaDir() :http://stackoverflow.com/questions/11908261/what-is-context-getexternalmediadir
参数
type:存储目录返回的类型. 为以下这些类型 DIRECTORY_MUSIC
, DIRECTORY_PODCASTS
, DIRECTORY_RINGTONES
, DIRECTORY_ALARMS
, DIRECTORY_NOTIFICATIONS,
DIRECTORY_PICTURES
, DIRECTORY_MOVIES
, DIRECTORY_DOWNLOADS
, or DIRECTORY_DCIM
. 不能为空
返回值
- 返回目录的路径.注意路径也许不存在,所以在使用前你必须确保他是存在的,例如使用
File.mkdirs()
.
相关推荐
《Power Monitor --- Python API》文档提供了使用Python与电力监控设备交互的方法,这使得开发者能够方便地获取电力数据、设置触发器以及进行校准等操作。本文档详细介绍了该API的各个方面,包括兼容性、安装步骤、...
- **IDE**(Integrated Development Environment):IDEA。 - **JDK**(Java Development Kit)版本:JDK 1.8。 - **构建工具**:Maven 3.6。 - **数据库**:MySQL 5.7。 - **应用服务器**:Tomcat 8.0 或 9.0...
- **JDK**:Java Development Kit,包含Java运行环境(Java Runtime Environment)、Java工具和Java基础类库。 - **Maven**:Apache Maven是一个项目管理和综合工具,用于构建和管理Java项目。 - **MySQL**:MySQL是...
- **权限申请**:自API 16开始,访问公共外部存储需要申请`WRITE_EXTERNAL_STORAGE`和`READ_EXTERNAL_STORAGE`权限。在AndroidManifest.xml中添加如下权限声明: ```xml <uses-permission android:name="android....
- `Context.getExternalCacheDir()` 返回外部存储的 `SDCard/Android/data/包名/cache` 目录,可通过应用详情里的“清除缓存”选项进行清理。 - `Environment.getExternalStorageDirectory()` 返回 SD 卡的根目录,...
使用`Environment.getExternalStorageDirectory()`可以获取外部存储目录,然后结合文件路径创建`File`对象。 3. **使用第三方库**: 如`DocX`或`Apache POI for Android`(如`docx4j-Android`)这样的库可以解析和...
传输层API负责在安全元件和外部世界之间安全传输信息,保证数据传输过程中的完整性和机密性,同时还要确保通信双方的身份验证和授权。 在具体实现时,开发者需要查阅并遵循API的头文件和常量定义,这些定义了可以...
标题中的“Setup_Source.rar_API Environment.dll_安装程序”揭示了这是一个关于软件安装程序的项目,其中包含一个名为“API Environment.dll”的动态链接库文件。这个DLL文件可能包含了用于处理环境变量、创建快捷...
- 从Android 4.4开始,为了更好地管理外部存储,引入了`getExternalStorageDirectory()`方法,它返回公共外部存储根目录,通常对应于内部存储的“外部存储”部分。 - 要获取真正的外置SD卡路径,可以尝试使用 `...
- **getExternalFilesDir()**: 提供外部存储上的应用特定目录,用户无法直接访问,即使卸载应用,文件也会被删除。 - **getExternalCacheDir()**: 同样提供外部存储的缓存目录,应用被卸载后可能保留这些文件。 3...
- **Android/data/包名**: 在Android 6.0(API级别23)之前,外部存储的公共目录。用户可以删除这些文件,因此不适合存储重要数据。 2. **外部存储**: - **SD卡**:在Android设备上,外部存储通常指SD卡。在...
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
Spring Cloud Config是Spring Cloud提供的一个解决分布式系统配置管理的解决方案。它包括服务端和客户端两个部分,...由于文档是中英文对照版,如果翻译质量不高,读者可以通过提供的联系方式修正文档中的不当之处。
在Android 6.0(API级别23)之后,用户可以将外部存储设备设置为“只读”,这在处理外部存储时需要额外的权限。 "判断双SD卡"的实现主要涉及以下几个关键知识点: 1. **获取存储路径**: Android提供了`...
JCRE还包含类库,提供了与智能卡硬件交互的必要功能,比如与外部世界通信、访问卡内存储以及执行加密操作。 其次,**JavaCard API**是开发者编写智能卡应用程序所使用的接口。这个API包含了一组预先定义的类和接口...
- 可以通过 `Environment.getExternalStorageState()` 方法检查外部存储(通常是 SD 卡)的状态,如果返回 `Environment.MEDIA_MOUNTED`,则表示 SD 卡可用。 6. **节省内存和主动回收内存**: - 使用 `System.gc...
使用`openFileInput`或`openFileOutput`读取内部存储的文件,使用`AssetManager`的`open`方法读取assets中的文件,使用`Environment.getExternalStorageDirectory()`获取外部存储路径。 此外,权限管理也是Android...
- 使用`Environment.getExternalStorageDirectory()`可以访问外部存储,但需要注意Android 10(API 29)后对外部存储的权限限制。 7. **权限管理**: - 自Android 6.0(API 23)起,运行时权限管理成为强制要求,...
- **外部存储**:如果需要在外部存储上创建TXT文件,需要先检查是否有写入权限,然后使用`Environment.getExternalStorageDirectory()`获取根目录,再构造完整的文件路径。使用`FileWriter`或`BufferedWriter`进行...
在Android 6.0(API级别23)及更高版本,用户动态授权外部存储权限。在`AndroidManifest.xml`中添加以下权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-...