Anddroid 7.0 之后系统默认禁止访问公共存储目录。所以需要将文件保存在系统分配给APP的私有空间中,该路径获取也是很简单的,主要有两种场景。

1 在Activity 中获取该路径:

该场景只需调用函数

getExternalFilesDir(null)

函数即可获得,代码如下

var privatePath = getExternalFilesDir(null).toString()

该私有空间路径位于“外部存储根目录/Android/data/应用包名/files”下

2 在其他类中获取该路径

由于函数getExternalFilesDir() 函数只能在Activity中直接调用,那在我们需要写一些工具类时,也需要获取该路径,该如何实现呢?

比较推荐的方法是先写一个继承自Application的类,在该类中声明 context 的静态常量(也就是一个全局的context),这样在该APP的所有类中均可直接调用该context下的方法。代码如下

class MyApplication : Application() {override fun onCreate() {super.onCreate()//获取contextcontext = applicationContext}companion object {//创建一个伴生对象,以便获取context对象var context: Context? = nullprivate set}
}
注意:这个类写完后需要在 AndroidManifest.xml 文件中的< application >节点下声明一下。这样APP在初始化时才会把这个 context 作为一个全局常量初始化
<applicationandroid:name=".MyApplication"

以上完成后,就可以在其他的类中使用该 context 了,例如下面的代码

import com.example.recorder.MyApplication.Companion.contextfun getAPPpath():String{return context?.getExternalFilesDir(null).toString()}

得到了这个路径,就可以在该APP中进行文件的读写等操作了

android app私有路径的获取相关推荐

  1. Android APP存储路径和缓存清理规范

    1. Android APP统一存储数据规范 基于Android系统对存储卡访问的各种特性,在充分保证基线的产品交互体验前提下,定义Android APP各业务开发中的可选存储路径,对应存储特性,各自 ...

  2. android 各个存储路径及获取方法总结

    1.各个路径 最长用到的就这三个位置 /data/data/包名/ /sdcard/Android/data/包名/ /sdcard/xxx 前两个是应用内部存储, 会随着app的卸载而自动删除, s ...

  3. Android APP - GPS定位并获取地理位置

    1. 相关知识简介 通过LocationManagerService可以获取位置,这个service的aidl文件在frameworks/base/location/java/android/loca ...

  4. Android提前加载unity程序,Unity项目嵌入Android App实现过程

    1.编写自己的Unity APP,完成后,导出为Android 工程(参数和步骤截图如下),unity版本为:2019.4.16 2.导出的文件夹内容如下截图:我们只使用unityLibrary这个文 ...

  5. android 动态库获取路径问题,一种Android App在Native层动态加载so库的方案

    这篇文章通过实战案例,介绍了一种有条理的组织Native层代码层级结构的方法.并且,在良好的代码层级.作用分工的基础上,实现了动态的按需加载.卸载so库.文章的最后,还介绍了实践过程中遇到的困难以及对 ...

  6. Android 外部存储App私有目录下照片和视频显示到相册

    对于外部存储中,APP私有目录下的图片或者视频,一般情况下,系统自带相册中是不会显示的,如果想要将其显示出来,可以通过下面的方法,对于适配Android 10的分区存储也是很方便的一种选择. Andr ...

  7. 【Android App】获取照片里的位置信息及使用全球卫星导航系统(GNSS)获取位置实战(附源码和演示 超详细)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 一.获取照片里的位置信息 手机拍摄的相片还保存着时间.地点.镜头参数等信息,这些信息由相片接口工具ExifInterface管理,它的常用方法说明如下 ...

  8. android assets绝对路径,Android 获取assets的绝对路径

    第一种方法: String path = "file:///android_asset/文件名"; 第二种方法: InputStream abpath = getClass().g ...

  9. android根据音乐路径获取音乐时长,采样率等

    android根据音乐路径获取音乐时长,采样率等 git路径为:https://github.com/zhangliangming/HPAudio Gradle 1.root build.gradle ...

最新文章

  1. IDEA2020如何设置全局maven路径
  2. IBM发布全球首台商用量子计算机
  3. Linux(Centos)快速搭建SVN服务器
  4. 解决移动端音频自动播放问题
  5. 什么是Vue?Vue的工作原理是什么?
  6. Leetcode:search_insert_position
  7. 从ACL2021看对比学习在NLP中的应用
  8. OSTaskSuspend()——挂起任务
  9. Linux C++ glog日志库的简单使用
  10. ios与java交互_5、与iOS、Android的交互 实践篇——主动调用
  11. IM TeamTalk流程分析
  12. 服务器共享文件夹设置特殊权限,资料共享服务器权限设置、服务器共享盘设置权限、设置局域网共享文件夹访问权限的方法...
  13. 市政管理学试题及答案
  14. 嵌入式系统开发与应用——Linux系统Socket网络编程
  15. Application的启动流程
  16. 学习少儿编程成就不平凡人生
  17. GAL 高压缩版辅助工具
  18. python如何使用matplotlib画散点图使不同类别的点有不同的形状和颜色?
  19. R语言中作图字体的设置
  20. (一)ssh远程连接服务器GPU以及其他GPU使用途径——新手指南

热门文章

  1. 快速绘制精致有格调的马赛克背景
  2. Java中将汉字转为拼音
  3. VBA 获取窗口标题 - 在PPT放映窗口与其他窗口间切换
  4. 太阳系行星运行轨道图,C语言,源代码分享
  5. idea集成svn 从svn下载项目流程
  6. 【C语言】获得月份天数
  7. Linux vim退出命令(保存与不保存)
  8. 全兼容的纯CSS级联菜单
  9. 通过准确性、可解释性、校准度和忠实度,对ChatGPT的能力进行全面评估
  10. 什么是匿名内部类,如何使用匿名内部类