2012-07-10 45 views
0

我正在開發一個應用程序,在某些點用戶可以將圖像文件保存到SD卡。 當手機連接到電腦時,所有工作正常,但當我斷開手機並啓動應用程序時,文件保存不起作用。Android - 連接到PC時只能保存文件

我猜測我應該使用不同的路徑來保存何時未連接到PC?

我當前的路徑是

"//mnt/sdcard/DCIM/Camera/image"+Math.random()*10000+".jpg" 

我使用純AS3 AIR開發。

下面的代碼:

var bmd:BitmapData = new BitmapData(Main.instance.stage.stageWidth, Main.instance.stage.stageHeight); 
     bmd.draw(_board) 
     var je:JPGEncoder = new JPGEncoder(100); 
     var ba:ByteArray = je.encode(bmd); 

     var fl:File = File.documentsDirectory.resolvePath("//mnt/sdcard/DCIM/Camera/image"+Math.random()*10000+".jpg"); 
     try{ 
      var fs:FileStream=new FileStream; 
      fs.open(fl,FileMode.WRITE); 
      fs.writeBytes(ba,0,ba.length); 
      fs.close(); 
     } 
      catch(e:Error){ 
       Main.instance.tf.text = e.message; 

      } 

由於提前,

+0

有你加permisions文件訪問? – turbosqel 2012-07-10 18:43:55

回答

0

Android應用程序存儲目錄如下:

在安裝該應用程序

目錄(只讀)

File.applicationDirectory 
/data/data/app.appID/app/assets 

該應用的專用存儲目錄

File.applicationStorageDirectory 
/data/data/app.appID/AppName/Local Store 

用戶的主目錄

File.userDirectory 
/sdcard 

用戶文檔目錄

File.documentsDirectory 
/sdcard 

用戶的桌面目錄

File.desktopDirectory 
/sdcard 

臨時存儲目錄

File.createTempDirectory() 
Created in /data/data/app.appId/cache 

臨時文件

File.createTempFile() 
Created in /data/data/app.appId/cache 
+0

謝謝,我用File.documentsDirectory +「DCIM/image」替換了「//mnt/sdcard/DCIM/Camera/image"+Math.random()*10000+".jpg」+ Math.random()* 10000+ 「.jpg」但它仍然不起作用。如果有的話,即使設備連接到PC,也不能立即保存文件。 – Servet 2012-07-10 19:00:04

+0

問題已解決。我似乎確實沒有問題。該文件正確保存到SD卡 - 只是沒有顯示。檢查它與Astro和文件在那裏:) – Servet 2012-07-11 11:38:49

相關問題