(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的主要内容,如果未能解决你的问题,请参考以下文章