Не удается записать изображение в air для Android

#android #actionscript-3 #air

#Android #actionscript-3 #air

Вопрос:

Этот код отлично работает в настольном приложении Air, но совсем не работает в Android. разве это еще невозможно в air для Android? вот мой код.

     var theImage:BitmapData = new BitmapData(imageArea.width,imageArea.height);
    theImage.draw(imageArea);
    var jpgStream:ByteArray = theEncoder.encode(theImage);
    var fileName:String = "pf_"   int(Math.random() * 10000)   ".jpg";
    while(File.userDirectory.resolvePath("DCIM/Camera/"   fileName).exists)
        fileName = "pf_"   int(Math.random() * 10000)   ".jpg";
    trace(fileName);
    var fl:File = File.userDirectory.resolvePath("DCIM/Camera/"   fileName);
    var fs:FileStream = new FileStream();
    trace(fl.url);
    try{
            fs.open(fl,FileMode.WRITE);
            fs.writeBytes(jpgStream);
            fs.close();
    }catch(e:Error){
            trace(e.message);
    }
 

Я получаю эту трассировку на fl.url
file:///mnt/sdcard/DCIM/Camera/pf_2570.jpg

область изображения — это гибкая группа с несколькими отображаемыми дочерними элементами. Спасибо

Ответ №1:

Я не пытался отлаживать ваш код, но то, что вы делаете, должно работать. Безусловно, на Android можно записывать в файлы с помощью AIR. Вы уверены, что в jpgStream есть данные?

Ответ №2:

Вы добавили разрешение Android на запись содержимого на SD-карту? (или внешнее хранилище)

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />