我正在使用flash cc创建应用。我需要存储许可。事实证明,我需要询问用户使用存储设备的权限。我可以要求用户许可,它工作正常。我使用本网站的例子:https://helpx.adobe.com/flash-player/release-note/fp_24_air_24_release_notes.html
但我的问题是我无法捕获完整的事件来访问存储权限。因此,在我访问存储后,我无法运行代码。是否可以捕获完整事件以授予任何许可?
我使用的代码:
READ_PHONE_STATE
更新
上面的代码似乎工作正常。但是当我尝试在不同时间请求两次相同的权限时,会出现问题。我还有一个问题。我们可以在申请许可时添加说明吗?很多应用程序似乎都在添加描述为什么应用程序需要特定权限。有可能从flash as3实现这一点吗?我已经看过网络但找不到任何东西。以及如何申请$('#manageEditContract').attr('data-is-allow-to-edit', JSON.stringify(data.IsAllowToEdit));
的权限?
答案 0 :(得分:3)
最后,我想通了。先决条件:
然后,这段代码对我很有用,它会显示Android的“授予权限”对话框,然后根据我的选择输出GRANTED或DENIED。 日志类只是我自己的调试面板,您可以将 Log.log 调用更改为跟踪或在此处获取(它没有依赖项):https://bitbucket.org/thydmitry/ru.delimiter/src/9083fb46ce1c/classes/ru/delimiter/utils/
package
{
import ru.delimiter.utils.Log;
import flash.filesystem.File;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.PermissionEvent;
import flash.permissions.PermissionStatus;
public class Permissions extends Sprite
{
private var F:File;
public function Permissions()
{
if (stage) onStage();
else addEventListener(Event.ADDED_TO_STAGE, onStage);
}
private function onStage(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, onStage);
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
Log.create(this, true);
Log.log("[Permissions Test] started");
Log.log("File.permissionStatus:", File.permissionStatus);
F = File.applicationStorageDirectory.resolvePath("somefile.txt");
F.addEventListener(PermissionEvent.PERMISSION_STATUS, onPerm);
stage.addEventListener(MouseEvent.CLICK, onClick);
}
private function onClick(e:MouseEvent):void
{
F.requestPermission();
}
private function onPerm(e:PermissionEvent):void
{
Log.log("User's decision:", e.status.toUpperCase());
}
}
}