Android studio 获取手机外部存储和sd卡存储位置
时间: 2023-03-16 11:44:43 浏览: 184
使用Android Studio可以通过Environment.getExternalStorageDirectory()来获取外部存储的位置,以及Environment.getExternalStoragePublicDirectory()来获取SD卡存储的位置。
相关问题
Android studio外部存储代码
在Android Studio中,访问外部存储通常分为两个路径:内部存储(Internal Storage)和外部存储(External Storage)。这里简述如何操作:
1. **内部存储**(Internal Storage):
- 对于应用数据,一般建议使用`getFilesDir()`或`getCacheDir()`获取私有目录,这是应用内部的一部分,不会因卸载应用而丢失数据。
```java
File appDataDir = getFilesDir();
```
2. **外部存储**(External Storage, 分两种情况):
- **读取**: 使用`Environment.getExternalStorageDirectory()`获取外部存储根目录。需要注意的是,在API级别23(Marshmallow)及以上,需先请求用户的权限,并检查`ACTION_EXTERNAL_STORAGE`权限是否已被授予。
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// Check for permission
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// Request permission
}
File externalStorageDir = Environment.getExternalStorageDirectory();
} else {
// Before Marshmallow, you can directly access external storage
File externalStorageDir = Environment.getExternalStorageDirectory();
}
File file = new File(externalStorageDir, "myfile.txt");
```
- **写入**: 需要注意,外部存储并非总是可用的,而且可能会因为设备设置、用户选择等因素变化。最好还是提供一种机制让用户选择保存位置(如通过文件浏览器界面)。
3. **外部存储 SD 卡**:
- 对于早期版本的Android,SD卡可能是可用的外部存储。但在现代设备上,SD卡并不常见,因此推荐优先使用外部存储(如果可用的话)。
android studio数据存储技术
Android Studio支持多种数据存储技术,用于管理应用程序的数据,主要包括:
1. **内部存储(Internal Storage)**:默认情况下,应用程序可以访问设备的内部存储空间。这是在设备上持久化数据的首选位置,但不适用于用户隐私敏感信息,因为所有应用都能访问。
2. **外部存储(External Storage)**:包括文件系统(File System, 如Android的Documents & Settings)和外部存储卡(External SD Card)。外部存储对于大容量数据存储或媒体文件很实用,但用户可能需要手动挂载才能访问,并且不是跨设备共享的。
3. **SQLite数据库**:轻量级的关系型数据库,适合小型应用的数据存储,性能好,本地持久化。
4. **Content Providers**:提供一种机制,让应用之间可以安全地共享数据。通常用于系统级数据(如联系人、日历等)的访问。
5. **Room Persistence Library**:Google推荐的安卓原生ORM库,用于简化SQLite数据库的使用。
6. **SharedPreferences**:简单的键值对存储,用于保存少量小数据。
7. **Android Shared Preferences**:类似于JavaScript的localStorage,用于保存简单的配置信息。
8. **Kotlin Coroutines + SQLite**:利用协程处理数据库操作,提升非阻塞IO性能。
9. **Firestore / Realtime Database**:Google的云端数据库服务,适用于需要实时同步的数据。
10. **Cloud Storage Services**:例如Google Drive、OneDrive等,将数据存储在云中,便于跨设备访问和备份。
选择哪种存储技术取决于你的应用需求,如数据量、性能要求、数据安全性、是否需要实时更新等。相关问题如下:
阅读全文