Ignore:
Timestamp:
09/05/14 10:44:54 (10 years ago)
Author:
funger
Message:

Corrected constructor method. Used activity method openFileOutput() does not work. Correction: Write directly to a given file in a given directory. Directory and file results from the the calling activity.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-androidmonitor/src/de/ugoe/cs/autoquest/androidmonitor/AndroidmonitorLogFile.java

    r1725 r1726  
    22 
    33import java.io.File; 
    4 import java.io.IOException; 
    5 import java.io.OutputStreamWriter; 
     4import java.io.FileOutputStream; 
    65import java.io.StringWriter; 
    76 
    87import org.xmlpull.v1.XmlSerializer; 
    98 
    10 import android.app.Activity; 
    11 import android.content.Context; 
    129import android.util.Log; 
    1310import android.util.Xml; 
    1411 
    15 public class AndroidmonitorLogFile extends Activity { 
    16         // extends activity to use the file handling methods of an activity 
     12public class AndroidmonitorLogFile { 
     13 
    1714        private String name; 
    1815 
     16        public AndroidmonitorLogFile(String appName, File dir) { 
     17                this.name = "android_" + appName + "_LogFile.xml"; 
    1918 
    20         public AndroidmonitorLogFile(String appName, File dir) {                 
    21                 this.name = appName + "LogFile.xml"; 
    22                  
    2319                try { 
     20                        // prove if file exists 
    2421                        File file = new File(dir, this.name); 
    25                         if (!file.exists()) { 
    26                                 Log.d("file", this.name + " - is not available"); 
    27                                  
    28                                 //create file 
     22                        /* 
     23                         * if file does not exists write device and app information to a new 
     24                         * file. Otherwise use existing file and add activity information to 
     25                         * file. 
     26                         */ 
     27                        if (true) { //!file.exists()  
     28                                /* 
     29                                 * create log file. Using method openFileOutput() does not work 
     30                                 * for this project due to the reason that this method would try 
     31                                 * to create the file in the directory of the non-existing 
     32                                 * directory de.ugoe.cs.androidmonitor. This directory does not 
     33                                 * exist due to the reason that this project is a library and 
     34                                 * the file has to be stored in the directory of the running 
     35                                 * application. Furthermore it would not be possible to write in 
     36                                 * another app directory as the own one. 
     37                                 */ 
     38                                String string = getDeviceInformation() + getAppInformation(); 
    2939                                try { 
    30                                         OutputStreamWriter outputStreamWriter = new OutputStreamWriter( 
    31                                                         openFileOutput(this.name, Context.MODE_PRIVATE)); 
    32                                         outputStreamWriter.write(getDeviceInformation() + getAppInformation()); 
    33                                         outputStreamWriter.close(); 
    34                                 } catch (IOException e) { 
    35                                         e.printStackTrace(); 
    36                                         Log.e("outputStreamWriter", e.getMessage()); 
     40                                        FileOutputStream outputStream = new FileOutputStream(file); 
     41                                        outputStream.write(string.getBytes()); 
     42                                        outputStream.close(); 
     43                                } catch (Exception e) { 
     44                                        Log.e("file", "outputstream: " + e.getMessage()); 
    3745                                } 
    38                                  
    3946 
    4047                        } 
    4148                } catch (Exception e) { 
    4249                        e.printStackTrace(); 
    43                         Log.e("file", e.getMessage()); 
     50                        Log.e("file", "file: " + e.getMessage()); 
    4451                } 
    4552 
     
    5966                return ""; 
    6067        } 
    61          
    62         private String getDeviceInformation(){ 
    63                 String deviceInformation = null; 
     68 
     69        private String getDeviceInformation() { 
     70                String deviceInformation = ""; 
     71                XmlSerializer serializer = Xml.newSerializer();  
     72                StringWriter writer = new StringWriter(); 
    6473                try { 
    65                         XmlSerializer xmlSerializer = Xml.newSerializer(); 
    66                         StringWriter stringWriter = new StringWriter();  
     74                        serializer.setOutput(writer); 
     75                        serializer.startDocument("UTF-8", true); 
     76                        serializer.startTag("", "device"); 
     77                        serializer.startTag("", "param"); 
     78                        serializer.attribute("", "value", "" 
     79                                        + android.os.Build.VERSION.SDK_INT); 
     80                        serializer.attribute("", "name", "sdk_version"); 
     81                        serializer.endTag("", "param"); 
     82 
     83                        serializer.startTag("", "param"); 
     84                        serializer.attribute("", "value", android.os.Build.DEVICE); 
     85                        serializer.attribute("", "name", "device"); 
     86                        serializer.endTag("", "param"); 
     87 
     88                        serializer.startTag("", "param"); 
     89                        serializer.attribute("", "value", android.os.Build.MANUFACTURER); 
     90                        serializer.attribute("", "name", "manufacturer"); 
     91                        serializer.endTag("", "param"); 
     92 
     93                        serializer.startTag("", "param"); 
     94                        serializer.attribute("", "value", android.os.Build.MODEL); 
     95                        serializer.attribute("", "name", "model"); 
     96                        serializer.endTag("", "param"); 
     97 
     98                        // tbd get resolution ... 
     99 
     100                        serializer.endTag("", "device"); 
     101                        serializer.endDocument(); 
    67102                         
    68                         xmlSerializer.setOutput(stringWriter); 
    69                         xmlSerializer.startDocument("UTF-8", true); 
    70                         xmlSerializer.startTag("", "device"); 
    71                         xmlSerializer.startTag("", "param"); 
    72                         xmlSerializer.attribute("", "value", "" + android.os.Build.VERSION.SDK_INT); 
    73                         xmlSerializer.attribute("", "name", "sdk_version"); 
    74                         xmlSerializer.endTag("", "param"); 
    75                          
    76                         xmlSerializer.startTag("", "param"); 
    77                         xmlSerializer.attribute("", "value", android.os.Build.DEVICE); 
    78                         xmlSerializer.attribute("", "name", "device"); 
    79                         xmlSerializer.endTag("", "param"); 
    80                          
    81                         xmlSerializer.startTag("", "param"); 
    82                         xmlSerializer.attribute("", "value", android.os.Build.MANUFACTURER); 
    83                         xmlSerializer.attribute("", "name", "manufacturer"); 
    84                         xmlSerializer.endTag("", "param"); 
    85                          
    86                         xmlSerializer.startTag("", "param"); 
    87                         xmlSerializer.attribute("", "value", android.os.Build.MODEL); 
    88                         xmlSerializer.attribute("", "name", "model"); 
    89                         xmlSerializer.endTag("", "param"); 
    90                          
    91                         //tbd get resolution ... 
    92                          
    93                          
    94                         xmlSerializer.endTag("", "device"); 
    95                         deviceInformation = stringWriter.toString(); 
    96                          
     103                        deviceInformation = writer.toString(); 
     104 
    97105                } catch (Exception e) { 
    98                         e.printStackTrace(); 
    99                         Log.e("xmlSerializer", e.getMessage()); 
     106                        Log.e("xml", e.getMessage());  
    100107                } 
    101                  
     108 
    102109                return deviceInformation; 
    103110        } 
    104111 
    105         public void addComponent(){ 
    106                 //add component to file 
     112        public void addComponent() { 
     113                // add component to file 
    107114        } 
    108          
    109         public void addEvent(){ 
    110                 //add event to file 
     115 
     116        public void addEvent() { 
     117                // add event to file 
    111118        } 
    112          
     119 
    113120} 
Note: See TracChangeset for help on using the changeset viewer.