(Android) 在内部存储中查找路径 /Android

Posted

技术标签:

【中文标题】(Android) 在内部存储中查找路径 /Android【英文标题】:(Android) Find path /Android in internal storage 【发布时间】:2016-09-26 14:59:54 【问题描述】:

android中是否有返回内部存储数据路径的方法?

我有 2 部 Android 智能手机(Samsung s2 和 s7 edge),我安装了一个应用程序。我想采用位于此路径中的 sqliteDB:

/Android/data/application.most/files/most_db

问题是在三星 s2 中我必须使用这条路径来获取数据库:

private static final String db_path = "/storage/sdcard0/Android/data/org.application/files/application_db";

Instaed,在 s7 中我必须使用这个:

private static final String db_path = "/storage/emulated/0/Android/data/application.most/files/application_db";

我想通过设备独立走这条路。

你能帮帮我吗?

提前致谢。

【问题讨论】:

【参考方案1】:

基本上你想访问应用程序外部目录。 IE。 "sdcard/Android/data/yourPackage/files"

您应该使用: Context 类的getExternalFilesDir(null) 方法。

private static final String db_path = getExternalFilesDir(null).getAbsolutePath() + "/application_db";

或者您可以直接获取文件实例,例如:

File file = new File(getExternalFileDir(null),"application_db");

确保您在清单中添加 WRITE_EXTERNAL_STORAGE 权限。

您可以在以下网址阅读更多相关信息: https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)

【讨论】:

【参考方案2】:

一旦在不同版本中更改您的逻辑.. 直到 android 4.xx 它以内部存储器为/storage/sdcard0/ 从 4.4 kitKat 开始,路径为/storage/emulated/0/

设计 multiple apk 取决于 android API 版本...

您的问题已解决..您可以使用该路径将其安装在 s2 中,使用该路径将其安装在 S7 中...

【讨论】:

【参考方案3】:

我认为您正在寻找的是类似的东西

String path = getFilesDir().getAbsolutePath();

【讨论】:

getFilesDir() 在哪个包中? 任何“上下文”包都适合,无论它是应用程序/活动/片段等。

以上是关于(Android) 在内部存储中查找路径 /Android的主要内容,如果未能解决你的问题,请参考以下文章

如何在内部存储android java中下载和保存媒体文件

直接在内部存储中捕获图像

在内部存储最佳实践中保存大量图像

将公共文件保存在内部存储中

Android:消除文件路径的歧义

拍照并将其保存在Android的内部存储中