使用此函数,您可以请求特定权限。您使用格式 "android.permission.<permission>",因此要请求RECORD_AUDIO权限(例如),您可以调用:
os_request_permission("android.permission.RECORD_AUDIO");
此函数仅适用于Android目标。
您可以通过将多个参数传递给函数来一次请求多个权限。
这将稍后触发系统异步事件,其中内置的async_loadDS映射将包含以下键/值对:
常量 | 描述 |
---|---|
os_permission_granted | This indicates that the permission has been granted |
os_permission_denied | This indicates that the permission has not been granted |
值得注意的是,GameMaker原生支持以下权限,但Google认为它们是"危险的",因此必须明确请求(请注意,可以使用Android游戏选项请求某些权限,而无需此函数):
有关应用权限的更多信息,请参阅Android文档。
os_request_permission(permissions...)
参数 | 类型 | 描述 |
---|---|---|
permissions | String | 请求的权限。通过添加更多参数请求多个权限。 |
N/A
if (os_type == os_android)
{
if (os_check_permission("android.permission.INTERNET") == os_permission_denied)
{
os_request_permission("android.permission.INTERNET");
}
}
上面的代码检查操作系统类型,如果是 Android,则会检查 "INTERNET" 权限,如果尚未授予,则会请求该权限。
var _read = "android.permission.READ_EXTERNAL_STORAGE";
var _write = "android.permission.WRITE_EXTERNAL_STORAGE";
if (os_check_permission(_write) && os_check_permission(_read))
{
MobileMedia_Share_Open("Title!", "image/gif", file);
}
else
{
os_request_permission(_write, _read);
}
该函数检查用户是否具有读取和写入外部存储的权限。如果允许,它会运行扩展函数来使用这些权限进行操作。不过,如果其中任何一个权限不被允许,它会调用 os_request_permission() 以同时请求这两个权限。