【发布时间】:2017-11-29 02:55:34
【问题描述】:
我正在使用 flash cc 创建一个应用程序。我需要存储权限。事实证明,我需要询问用户使用存储设备的权限。我可以请求用户许可,它工作正常。我使用这个网站上的例子:https://helpx.adobe.com/flash-player/release-note/fp_24_air_24_release_notes.html
但我的问题是我无法捕获访问存储权限的完整事件。因此,我在访问存储后无法运行代码。是否可以捕获完整的事件以授予任何权限?
我使用的代码:
var file:File = File.documentsDirectory.resolvePath("somefile.txt");
trace("url_txt:" + file.url);
file.addEventListener(PermissionEvent.PERMISSION_STATUS, function permissionStatusHandler(e:PermissionEvent):void
{
file.removeEventListener(PermissionEvent.PERMISSION_STATUS, permissionStatusHandler);
if(e.status == PermissionStatus.GRANTED)
{
myTextLoader.load(new URLRequest(file.url));
myTextLoader.addEventListener(Event.COMPLETE, onLoadTextComp);
myTextLoader.addEventListener(IOErrorEvent.IO_ERROR, loadingTextError);
}
else
{
showPermissionError();
}
}
);
try
{
trace("Requesting permission");
file.requestPermission();
}
catch(error:Error)
{
trace("Request permission error");
}
更新:
上面的代码似乎工作正常。但是当我尝试在不同时间两次请求相同的权限时,就会出现问题。我还有一个问题。我们可以在请求许可时添加描述吗?很多应用程序似乎都在添加说明为什么应用程序需要该特定权限。是否有可能从 flash as3 实现这一目标?我已经查看了网络,但找不到任何东西。以及如何申请READ_PHONE_STATE的权限?
【问题讨论】:
-
感谢您的快速回复。我去看看。
-
是
onRequestPermissionsResult用于 as3 还是 android studio? -
显示你的代码,也许吧? “无法捕捉”听起来很奇怪。
-
在测试它时,我遇到了一个完全不同的问题。虽然我对事件本身没有任何问题,但调用 requestPermission 并没有为我提供任何选项,而是立即使用当前权限触发 PermissionEvent。我使用 AIR 24 SDK 到 AIR 24 运行时 (Flash Player 35) 构建它并在 Android 6 上对其进行测试。
标签: android actionscript-3 flash permissions