我在使用媒體承諾上傳圖片時遇到了一些問題,如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"/>
任何想法如何解決這一問題?
編輯:
我也嘗試加載這樣的承諾,但得到了完全相同的結果:
var loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMediaLoaded);
loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, onError);
loader.loadFilePromise(imagePromise);
你使用的是什麼目標sdk?很可能這與23中添加的運行時權限有關(即6.0)您可以通過指定舊的目標sdk來解決它。 – Michael
謝謝Michael!這是解決方案。將目標sdk更改爲22後,它再次完美工作:) – deloki
太棒了!我會用另一種方法來回答問題以解決問題。乾杯 – Michael