Han*_*ank 0 android android-sdcard
清单有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
Run Code Online (Sandbox Code Playgroud)
应用程序设置,“存储”=修改/删除 SD 卡内容”在运行 2.3.5 的三星平板电脑和运行 2.3.4 的摩托罗拉 Droid 上结果相同。设备不依赖于开发机器。
代码如下:
public class OutputStudentRecords extends StActivity{
SharedPreferences mStudentSettings;
protected Cursor mCursor;
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_csv);
String state = Environment.getExternalStorageState();
Toast.makeText(getApplicationContext(),"State is " + state, Toast.LENGTH_LONG).show();
if (!Environment.MEDIA_MOUNTED.equals(state)){
//We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
Toast.makeText(getApplicationContext(), "We Can Read And Write ", Toast.LENGTH_LONG).show();
File file = new File(Environment.getExternalStorageDirectory()
+File.separator
+"studentrecords"); //folder name
file.mkdir();
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)){
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
Toast.makeText(getApplicationContext(), "We Can Read but Not Write ", Toast.LENGTH_LONG).show();
}else{
//something else is wrong
mExternalStorageAvailable = mExternalStorageWriteable = false;
Toast.makeText(getApplicationContext(), "We Can't Read OR Write ", Toast.LENGTH_LONG).show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Toast 返回 State="mounted",但是它在两台机器上都会跳到“我们无法读取或写入”。我错过了一些东西,但找不到它,任何帮助将不胜感激。
谢谢
也许你应该改变这一点:
if (!Environment.MEDIA_MOUNTED.equals(state)){
Run Code Online (Sandbox Code Playgroud)
进入这个:
if (Environment.MEDIA_MOUNTED.equals(state)){
Run Code Online (Sandbox Code Playgroud)
(即:删除“!”)
| 归档时间: |
|
| 查看次数: |
6041 次 |
| 最近记录: |