Adobe Air文件运行时权限拒绝不会发送事件
问题描述:
我正在使用Android的相对较新的Adobe Air运行时权限来利用文件系统。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.
谢谢。
答
您需要创建一个单独的函数,因此可以在需要时多次调用它。现在,在您的代码中,它只存在一次(当添加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代码中文件对象所拥有的变量,所以只要文件对象存在,它就会一直存在。 – Brian
这并没有帮助,因为在用户拒绝请求的情况下它不会触发事件。 – mik