一、在程序中訪問SDCard,你須要申請訪問SDCard的權限 java
在AndroidManifest.xml中加入訪問SDCard的權限以下: android
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.example.files"
android:versionCode="1"
android:versionName="1.0" > app
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" /> ide
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner" />
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> 測試
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<!-- 測試配置文件 -->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="org.example.files" android:label="Test for my App"/>
<!-- 在SDCard中建立與刪除文件權限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard寫入數據權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest> this
二、在MainActivity.java中代碼以下: spa
package org.example.files; xml
import org.example.service.FileService; 對象
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; 繼承
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//根據按鈕的ID找到按鈕
Button button = (Button) this.findViewById(R.id.button);
//把ButtonClickListener對象new出來
button.setOnClickListener(new ButtonClickListener());
}
//建立一個內部類,這個內部類繼承了OnClickListener這個接口
private final class ButtonClickListener implements View.OnClickListener
{
public void onClick(View v) {
//首先找到文件名稱這個輸入框
EditText filenameText = (EditText) findViewById(R.id.filename);
//再找到文件內容這個輸入框
EditText contentText = (EditText) findViewById(R.id.filecontent);
//從文件名稱輸入框中獲得文件名稱的內容
String filename = filenameText.getText().toString();
String content = contentText.getText().toString();
//經過業務類保存文件的內容,實例化業務類
FileService service = new FileService(getApplicationContext());
//保存文件內容
try {
//判斷SDCard是否存在,能夠讀寫就把文件數據保存在SDCard裏
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
service.saveToSDCard(filename,content);
//經過Toast方法獲取信息調用show方法把提示結果信息顯示出來
Toast.makeText(getApplicationContext(), R.string.success, 1).show();
}else
{
//不然提示SDCard不存在或寫保護
Toast.makeText(getApplicationContext(), R.string.sdcarderror, 1).show();
// //把數據保存到手機
// service.save(filename,content);
// //經過Toast方法獲取信息調用show方法把提示結果信息顯示出來
// Toast.makeText(getApplicationContext(), R.string.success, 1).show();
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(), R.string.fail, 1).show();
e.printStackTrace();
}
}
}
}
三、在FileService.java中代碼以下:
public class FileService {