正因为生来什么都没有,因此我们能拥有一切。(o゚▽゚)o

  • 微信公众号
  • 将文件添加到android模拟器SD卡

    jingyile·28 天前·41 次阅读

    个人开发环境:Ubuntu18.04+IDEA2019.1+Android9.0

    问题起源,开发一个简单Android播放器去播放SD卡上的视频/音频文件。由于需要将文件复制到模拟器的SD卡上,课本上和网上教程是关于用Eclipse和Android Studio进行开发的,借助DDMS可以轻松实现。可是我用的IDEA找不到打开DDMS的地方,网上也没找到啥有用的信息。

    这里简单归纳下解决办法:

    思路:找到自己安装Android SDK的路径,进入其下的tools文件夹,用终端打开并输入montior 回车(也可直接用终端定位到此目录执行monitor),此时发现DDMS已正常启动,可以进行向SD卡导入文件的操作。(需要提前开启安卓虚拟机AVD)

    注意:模拟器SD卡目录为mnt文件夹下的sdcard,选中这里点右上角的导入按钮即可向SD卡导入所需文件。

    我发现导入后的文件这里好像并不能在sdcard下面看到,不过只要导入过程中控制台没有错误提醒,即说明导入成功。(也可以在安卓模拟器自带的文件管理应用中进行查看)

    194.231 - 将文件添加到android模拟器SD卡

    文件导入成功,剩下便是在代码中的引用了。

    这里谈下关于文件路径的设置及访问权限的获取。

    path = "/sdcard/Movies/sample.3gp";

    mMediaPlayer.setDataSource(path);// 设置数据源

    path值只需要填写为“/sdcard/所在文件夹/所在文件”即可。

    运行项目发现还是不行,获取数据源出错。一开始以为是path设置的路径有误,后面发现是忘记加访问权限了。

    在AndroidManifest.xml文件的<application>标签之前加入下面两句获取访问权限的代码

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    此时如果运行项目还是会出现如下情况,很明显的错误提醒,没有访问权限。

    194.232 - 将文件添加到android模拟器SD卡

    可是前面不是刚加了访问权限嘛,怎么还提示没有。

    仔细看书才发现是Android版本的问题,在Android6.0以后的版本加了新的保护权限,需要 动态获取权限

    代码如下:

     

    上述方法写在MainActivity中即可,在onCreate方法中调用即可。

    这样在运行时会弹出如下的权限请求,ALLOW即可。

    194.233 - 将文件添加到android模拟器SD卡

     

    机智的解决上述问题,除了动态请求权限。也可以打开模拟器的设置,在里面找到APP相关设置,然后给予该APP访问权限。

    194.234 - 将文件添加到android模拟器SD卡


    正因为生来什么都没有,因此我们能拥有一切。(o゚▽゚)o

    
    
    查看评论

    Post a new comment

    Post a new comment
    欢迎回来 , [ 修改 ]




    加载中……