Android Studio运行工程到真机,没有创建文件!!!!手机已经获得ROOT权限

杨吅 2016-09-04 02:30:41





我给你写入权限和读取权限,运行完成后用Monitor查看并没有创建文件 .
...全文
368 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
杨吅 2016-09-06
  • 打赏
  • 举报
回复
引用 7 楼 crash163 的回复:
[quote=引用 6 楼 qq_33342776 的回复:] [quote=引用 4 楼 crash163 的回复:] Environment.getExternalStorageDirectory() + "storage/extern_card/Test.txt" 这句有问题, 路径重复了。 改为下面这句试下: Environment.getExternalStorageDirectory() + File.separator + "Text.txt" ///
谢谢你,这句话加上能创建了.创建的是手机自带内存的地址,如果我想创建到SDcrad里面该怎么写....[/quote] 额,是这样的. android的官方文档上说,采用Enviroment.getExternalStorageDirectory()方法可以得到android设备的外置存储(即外插SDCARD),如果android设备有外插SDCARD的话就返回外插SDCARD的根目录路径,如果android设备没有外插SDCARD的话就返回android设备的内置SDCARD的路径。但是只有原生的android系统才使用这套方案,被更改过的anroid体统很多设备的路径都改了。 主要原因还是现在的Andorid厂商太多,自己的系统,改的也多,所以这个SDcard地址不确定,但是代码上还是用Enviroment.getExternalStorageDirectory()获取。 调用Environment.getExternalStorageDirectory(),返回的存储目录并不是系统内置的SD卡目录。 1.一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到Environment.getExternalStorageDirectory()这个结点。 此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。 2.而另一部分手机直接将eMMC存储挂载在Environment.getExternalStorageDirectory()这个节点,而将真正的外置SD卡挂载到/mnt/external_sd、/mnt/sdcard2 等节点。 鉴于你说创建的是自带的内存地址==可能是内置存储卡的地址,SDCard的话,暂时没有好的通用方法。 附android常见的SD卡存储位置
/storage/emulated/0/
/storage/extSdCard
/mnt/external_sd/
/mnt/sdcard2/
/mnt/sdcard/external_sd/
/mnt/sdcard-ext/
/mnt/sdcard/
/storage/sdcard0/
/mnt/extSdCard/
/mnt/extsd/
/mnt/emmc/
/mnt/extern_sd/
/mnt/ext_sd/
/mnt/ext_card/
/mnt/_ExternalSD/
/sdcard2/
/sdcard/
/sdcard/sd/
/sdcard/external_sd/
/mnt/sd/
/mnt/
/storage/
/mnt/sdcard/sd/
/mnt/exsdcard/
/mnt/sdcard/extStorages/SdCard/
/ext_card/
/storage/extSdCard
[/quote] 谢谢你了,解决了我的问题.非常感谢
网易云捕 2016-09-06
  • 打赏
  • 举报
回复
引用 6 楼 qq_33342776 的回复:
[quote=引用 4 楼 crash163 的回复:] Environment.getExternalStorageDirectory() + "storage/extern_card/Test.txt" 这句有问题, 路径重复了。 改为下面这句试下: Environment.getExternalStorageDirectory() + File.separator + "Text.txt" ///
谢谢你,这句话加上能创建了.创建的是手机自带内存的地址,如果我想创建到SDcrad里面该怎么写....[/quote] 额,是这样的. android的官方文档上说,采用Enviroment.getExternalStorageDirectory()方法可以得到android设备的外置存储(即外插SDCARD),如果android设备有外插SDCARD的话就返回外插SDCARD的根目录路径,如果android设备没有外插SDCARD的话就返回android设备的内置SDCARD的路径。但是只有原生的android系统才使用这套方案,被更改过的anroid体统很多设备的路径都改了。 主要原因还是现在的Andorid厂商太多,自己的系统,改的也多,所以这个SDcard地址不确定,但是代码上还是用Enviroment.getExternalStorageDirectory()获取。 调用Environment.getExternalStorageDirectory(),返回的存储目录并不是系统内置的SD卡目录。 1.一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到Environment.getExternalStorageDirectory()这个结点。 此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。 2.而另一部分手机直接将eMMC存储挂载在Environment.getExternalStorageDirectory()这个节点,而将真正的外置SD卡挂载到/mnt/external_sd、/mnt/sdcard2 等节点。 鉴于你说创建的是自带的内存地址==可能是内置存储卡的地址,SDCard的话,暂时没有好的通用方法。 附android常见的SD卡存储位置
/storage/emulated/0/
/storage/extSdCard
/mnt/external_sd/
/mnt/sdcard2/
/mnt/sdcard/external_sd/
/mnt/sdcard-ext/
/mnt/sdcard/
/storage/sdcard0/
/mnt/extSdCard/
/mnt/extsd/
/mnt/emmc/
/mnt/extern_sd/
/mnt/ext_sd/
/mnt/ext_card/
/mnt/_ExternalSD/
/sdcard2/
/sdcard/
/sdcard/sd/
/sdcard/external_sd/
/mnt/sd/
/mnt/
/storage/
/mnt/sdcard/sd/
/mnt/exsdcard/
/mnt/sdcard/extStorages/SdCard/
/ext_card/
/storage/extSdCard
杨吅 2016-09-05
  • 打赏
  • 举报
回复
引用 4 楼 crash163 的回复:
Environment.getExternalStorageDirectory() + "storage/extern_card/Test.txt" 这句有问题, 路径重复了。 改为下面这句试下: Environment.getExternalStorageDirectory() + File.separator + "Text.txt" ///
谢谢你,这句话加上能创建了.创建的是手机自带内存的地址,如果我想创建到SDcrad里面该怎么写....
jklwan 2016-09-05
  • 打赏
  • 举报
回复
第一,如果是6.0的手机,光配置权限时不够的,也需要进行权限请求。 第二,路径错误,如楼上所言。
网易云捕 2016-09-05
  • 打赏
  • 举报
回复
Environment.getExternalStorageDirectory() + "storage/extern_card/Test.txt" 这句有问题, 路径重复了。 改为下面这句试下: Environment.getExternalStorageDirectory() + File.separator + "Text.txt" ///
杨吅 2016-09-05
  • 打赏
  • 举报
回复
按理说,我是在SDcrad下创建文价.因该可以不用创建文件夹?
LoveWyf_ 2016-09-04
  • 打赏
  • 举报
回复
File file = new File(Info.audioPath); if (!file.exists()) { try { //按照指定的路径创建文件夹 file.mkdirs(); } catch (Exception e) { // TODO: handle exception } } File dir = new File(filenameTemp); if (!dir.exists()) { try { //在指定的文件夹中创建文件 dir.createNewFile(); } catch (Exception e) { } } 这样试试
LoveWyf_ 2016-09-04
  • 打赏
  • 举报
回复
你打印一下log,看一下file的具体地址。你首先得通过file.mkdirs()创建文件夹,然后才是创建文件

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧