Adobe Air 文件运行时权限拒绝不会调度事件
Posted
技术标签:
【中文标题】Adobe Air 文件运行时权限拒绝不会调度事件【英文标题】:Adobe Air file run-time permission rejection doesn't dispatch an event 【发布时间】:2018-01-22 02:34:21 【问题描述】:我正在使用相对较新的 android 版 Adobe Air 运行时权限,以利用文件系统。
问题是当用户拒绝给予必要的许可时,我想再次询问他,但拒绝时不会调用事件处理程序。
file.addEventListener(PermissionEvent.PERMISSION_STATUS, function(e:PermissionEvent):void
// does not reach to this point if user declined permission request
if (e.status == PermissionStatus.GRANTED)
contRead();
);
try
file.requestPermission();
catch(e:Error)
// another request is in progress
trace("REQUEST ERROR!!!");
我该如何解决?您有单独的事件处理程序吗? 我正在使用 Adobe Air 25。
谢谢。
【问题讨论】:
【参考方案1】:您需要创建一个单独的函数,以便在需要时可以多次调用它。现在,在您的代码中,它只存在一次(当添加了 evenListener 时)。
试试下面这样的设置:
file.addEventListener(PermissionEvent.PERMISSION_STATUS, checkPermissions);
try
file.requestPermission();
catch(e:Error)
// another request is in progress
trace( "REQUEST ERROR!!! : " + e.toString() );
function checkPermissions (e:PermissionEvent) : void
trace( "Status is : " + e.status.toString() );
// does not reach to this point if user declined permission request
if (e.status == PermissionStatus.GRANTED)
contRead();
【讨论】:
这对 OP 没有帮助,除非您认为他们报告的行为的原因是该函数在事件触发之前收集了垃圾。我没有看到任何迹象表明情况就是这样。匿名侦听器是 OP 代码中文件对象持有的变量,因此只要文件对象存在,它就会持续存在。 它没有帮助,因为如果用户拒绝了请求,它不会触发事件。以上是关于Adobe Air 文件运行时权限拒绝不会调度事件的主要内容,如果未能解决你的问题,请参考以下文章
Adobe AIR后退按钮事件不适用于Android API 28 +