From b266a711e7f513577e5fb3a1fc6a90fd8d917cca Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Mon, 10 Nov 2014 13:30:07 +0100 Subject: [PATCH] Added a check so we dont try to write to sdcard if its unavailable --- .../uecontrol/gui/util/CSVWriter.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/util/CSVWriter.java b/app/src/main/java/com/ericsson/uecontrol/gui/util/CSVWriter.java index 33de5d7..f99df3e 100755 --- a/app/src/main/java/com/ericsson/uecontrol/gui/util/CSVWriter.java +++ b/app/src/main/java/com/ericsson/uecontrol/gui/util/CSVWriter.java @@ -8,6 +8,7 @@ import android.net.NetworkInfo; import android.net.Uri; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; +import android.os.Environment; import android.preference.PreferenceManager; import android.telephony.TelephonyManager; import android.telephony.gsm.GsmCellLocation; @@ -43,7 +44,7 @@ public class CSVWriter { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); comment = ""; - String path = prefs.getString("logging_path", "/sdcard/uecontrol/"); + String path = prefs.getString("logging_path", Environment.getExternalStorageDirectory().getAbsolutePath()+"/uecontrol/"); if(!path.endsWith(File.separator)) path += File.separator; file = new File( path, @@ -62,6 +63,9 @@ public class CSVWriter { new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file))); } + public void addComment(String str){ + comment = str; + } public void write(String behaviour, double down, double up){ StringBuilder line = new StringBuilder(); @@ -80,6 +84,8 @@ public class CSVWriter { } protected void writeLine(String line){ + if(!isExternalStorageWritable()) + return; try{ PrintWriter out = new PrintWriter(new FileOutputStream(file, true)); out.println(line); @@ -89,10 +95,17 @@ public class CSVWriter { } } - public void addComment(String str){ - comment = str; + /* Checks if external storage is available for read and write */ + private boolean isExternalStorageWritable() { + String state = Environment.getExternalStorageState(); + if (Environment.MEDIA_MOUNTED.equals(state)) { + return true; + } + return false; } + + //******************* INFORMATION FUNCTIONS ******************************************** public static String getRat(){ Context context = MainActivity.getContext(); ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);