android中读写sdcard遇到Environment.MEDIA_SHARED问题

来源:互联网 发布:程序员励志桌面壁纸 编辑:程序博客网 时间:2024/06/06 00:37

/**

Time: 2013-0827 qmy3

Problems:

1. android中读写sdcard遇到Environment.MEDIA_SHARED问题

 

Analyse:

1. 在AndroidManifest.xml文件中添加权限:

<!-- 在SDCard中创建与删除文件权限 -->
  <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
 
  <!-- 往SDCard写入数据权限 -->
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

结果:失败,String strState = Environment.getExternalStorageState();仍然=Environment.MEDIA_SHARED

2. 在adroid层调用File读写,在JNI层用FILE读写;

结果:失败,被告知打开文件失败,没有权限;

3. 切换到顶层目录,或者次级目录读写;

结果:失败;

3.转换另一台三星手机测试;

结果:成功,String strState = Environment.getExternalStorageState();不再=Environment.MEDIA_SHARED没有任何问题;推测可能手机问题;

4.无意间发现原来的那台手机里已经成功创建了文件,“奇怪,奇怪,奇怪。。。。。。。。。无限个奇怪”,想了想,是不是在不使用连接数据线下,就不会出错呢,后来证明真是如此;

 

Summaires:

1. 当出现String strState = Environment.getExternalStorageState();仍然=Environment.MEDIA_SHARED时,请使用不连接数据线启动apk,不是代码问题。;

2. 至于为什么有的手机会strState ==Environment.MEDIA_SHARED,而有的又strState !=Environment.MEDIA_SHARED,可能手机问题或者驱动问题,有待高手帮忙讲解一下;

3.至于如何让strState ==Environment.MEDIA_SHARED的sdcard转为strState !=Environment.MEDIA_SHARED状态,有待高手帮忙讲解一下;

 

*/