I have been developing an application on the HTC desire. It runs fine. The application when a button is clicked downloads a file from the my web server and saves it onto the SD card.
I now want to run this application on my Samsung Galaxy Tab. However, is crashes when i click on the button.
The only reason i can see is that the tab is not allowing access to the SD Card. It is the same SD Card i had in the HTC Deisre phone and it is not write protected or anything?
Anyone know what can be wrong?
This is the code i am using to download a file and store it on the card...
class CreatefilesTask extends AsyncTask<Object, Integer, Boolean> {
protected Boolean doInBackground(Object... arg0) {
try{
URL url = new URL("http://213.143.36.32/file.csv");
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
InputStream is = url.openStream();
File testDirectory =
new File(Environment.getExternalStorageDirectory()+"/File");
if(!testDirectory.exists()){
testDirectory.mkdir();
}
FileOutputStream fos = new FileOutputStream(testDirectory+"/file.csv");
byte data[] = new byte[1024];
int count = 0;
long total = 0;
int progress = 0;
while ((count=is.read(data)) != -1){
total += count;
int progress_temp = (int)total*100/lenghtOfFile;
if(progress_temp%10 == 0 && progress != progress_temp){
progress = progress_temp;
}
fos.write(data, 0, count);
}
is.close();
fos.close();
}
catch(Exception e){
e.printStackTrace();
}
This works fine on the Desire.
StackTrace..
03-31 12:45:07.823: INFO/PowerManagerService(2494): Ulight 3->7|0
03-31 12:45:07.831: VERBOSE/WindowManager(2494): Delivering toWindow{48419208 com.android.qservices/com.android.qservices.AdminActivity paused=false}
03-31 12:45:07.898: VERBOSE/WindowManager(2494): Delivering toWindow{48419208 com.android.qservices/com.android.qservices.AdminActivity paused=false}
03-31 12:45:08.261: WARN/System.err(5314): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
03-31 12:45:08.261: WARN/System.err(5314): at android.os.Handler.<init>(Handler.java:121)
03-31 12:45:08.265: WARN/System.err(5314): at android.widget.Toast.<init>(Toast.java:77)
03-31 12:45:08.265: WARN/System.err(5314): at android.widget.Toast.makeText(Toast.java:266)
03-31 12:45:08.269: WARN/System.err(5314): at com.android.qservices.AdminActivity$CreatefilesTask.doInBackground(AdminActivity.java:117)
03-31 12:45:08.269: WARN/System.err(5314): at com.android.qservices.AdminActivity$CreatefilesTask.doInBackground(AdminActivity.java:1)
03-31 12:45:08.269: WARN/System.err(5314): at android.os.AsyncTask$2.call(AsyncTask.java:185)
03-31 12:45:08.269: WARN/System.err(5314): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-31 12:45:08.273: WARN/System.err(5314): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-31 12:45:08.273: WARN/System.err(5314): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
03-31 12:45:08.273: WARN/System.err(5314): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
03-31 12:45:08.273: WARN/System.err(5314): at java.lang.Thread.run(Thread.java:1096)
03-31 12:45:08.280: WARN/System.err(5314): java.io.FileNotFoundException: /mnt/sdcard/File/file.csv (No such file or directory)
03-31 12:45:08.284: WARN/System.err(5314): at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
03-31 12:45:08.284: WARN/System.err(5314): at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
03-31 12:45:08.288: WARN/System.err(5314): at java.io.FileInputStream.<init>(FileInputStream.java:82)
03-31 12:45:08.288: WARN/System.err(5314): at com.android.qservices.AdminActivity$CreatefilesTask.doInBackground(AdminActivity.java:148)
03-31 12:45:08.288: WARN/System.err(5314): at com.android.qservices.AdminActivity$CreatefilesTask.doInBackground(AdminActivity.java:1)
03-31 12:45:08.288: WARN/System.err(5314): at android.os.AsyncTask$2.call(AsyncTask.java:185)
03-31 12:45:08.292: WARN/System.err(5314): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-31 12:45:08.292: WARN/System.err(5314): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-31 12:45:08.292: WARN/System.err(5314): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
03-31 12:45:08.296: WARN/System.err(5314): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
03-31 12:45:08.296: WARN/System.err(5314): at java.lang.Thread.run(Thread.java:1096)
Clear app cache. Tap Clear cache. If you want, you can also clear the app's data by tapping Clear data, and then tapping OK. From there, you can restart the content transfer. If the issue persists, please contact Samsung Customer Support.
If Smart Switch can't complete a transfer, doesn't recognize your device when using a PC or Mac, or crashes suddenly, there are a few things you can do to solve the problem. You can try clearing the app's data or deleting unnecessary items from your device to make room for the transfer.
One of the main reasons why the Samsung Smart Switch taking long time to transfer your files is due to a total load of data. If possible, transfer files gradually or depending on their file sizes. You can start with the most important files first such as your contacts and messages. Then, work on your photos.
I guess that this line causes the trouble:
new FileOutputStream(testDirectory+"/file.csv");
You create a directory file
first, but according to your stacktrace, you try to access file.csv
on the root of the sdcard. So I guess that the you can't simply append a file.csv to your testDirectory
variable of type File
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With