У меня возникли проблемы с загрузкой изображений с помощью средств массовой информации, как описано here.Adobe AIR CameraRoll не может выбрать фотографию на Android 6.0
Проблема заключается в том, что после обновления телефона до нового Android 6.0 изображение Async
больше не загружается, в следующем коде слушатель добавляется к eventSource
, но onMediaLoaded
никогда не срабатывает. До обновления все работало отлично:
private function imageSelected(event:MediaEvent):void {
trace("Media selected...");
var imagePromise:MediaPromise = event.data;
dataSource = imagePromise.open();
if(imagePromise.isAsync)
{
trace("Asynchronous media promise.");
var eventSource:IEventDispatcher = dataSource as IEventDispatcher;
eventSource.addEventListener(Event.COMPLETE, onMediaLoaded);
}
else
{
trace("Synchronous media promise.");
readMediaData();
}
}
Среди других разрешений, у меня есть это в дескрипторе:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Любая идея, как это исправить?
EDIT:
я также пытался загрузить обещание, как это, но получил точно такой же результат:
var loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMediaLoaded);
loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, onError);
loader.loadFilePromise(imagePromise);
Какую целевую утилиту вы используете? Скорее всего, это связано с разрешениями времени выполнения, добавленными в 23 (т. Е. 6.0). Вероятно, вы можете обойти его, указав старшую целевую sdk. – Michael
Спасибо, Майкл! Это решение. После смены целевого sdk на 22 он отлично работает отлично :) – deloki
Отлично! Я добавлю ответ другим методом, чтобы обойти проблему. Cheers – Michael