gpt4 book ai didi

c - 如何请求 Tizen native 服务应用程序的隐私权限

转载 作者:行者123 更新时间:2023-11-30 14:36:33 25 4
gpt4 key购买 nike

我正在开发 Hybrid App我的 Gear S3 Frontier 的 API 版本 4.0(带有 native 服务的 Web UI)。

  • Web UI 启动服务。
  • Native Service 使用传感器和位置数据

我的服务应用程序具有 list 文件中传感器和位置的权限。当我检查代码中的权限时,结果表明我需要从用户那里获取权限,这很好。

我已经使用 Privacy Privilege Manager 实现了它但是当我使用ppm_request_permission请求特权时方法,它不会显示任何请求权限的消息,因此不会出现 ppm_request_response_cb方法。

相关代码如下:

响应处理程序实现:

void ppm_request_response_handler(ppm_call_cause_e cause, ppm_request_result_e result, const char *privilege, void *user_data)
{

dlog_print(DLOG_DEBUG, TAG, "In the ppm_request_response_handler.");

/*
* The result of a response triggered by calling ppm_request_permission() is a valid value only if
* the cause parameter is equal to PRIVACY_PRIVILEGE_MANAGER_CALL_CAUSE_ANSWER.
*/
if(cause == PRIVACY_PRIVILEGE_MANAGER_CALL_CAUSE_ANSWER)
{
if(result == PRIVACY_PRIVILEGE_MANAGER_REQUEST_RESULT_ALLOW_FOREVER)
{
if(!strcmp(privilege, "http://tizen.org/privilege/location"))
{
bIsLocationPrivilegeGranted = true;
dlog_print(DLOG_DEBUG, TAG, "Service Application has been granted the Location privilege.");
}

if(!strcmp(privilege, "http://tizen.org/privilege/healthinfo"))
{
bIsHealthInfoPrivilegeGranted = true;
dlog_print(DLOG_DEBUG, TAG, "Service Application has been granted the Health Info privilege.");
}
}
else
{
if(!strcmp(privilege, "http://tizen.org/privilege/location"))
{
dlog_print(DLOG_DEBUG, TAG, "Service Application is denied to access the Location.");
}

if(!strcmp(privilege, "http://tizen.org/privilege/healthinfo"))
{
dlog_print(DLOG_DEBUG, TAG, "Service Application is denied to access the Health Information.");
}
}
}
else
{
if(!strcmp(privilege, "http://tizen.org/privilege/location"))
{
dlog_print(DLOG_DEBUG, TAG, "Service Application did not get any response to access the Location.");
}

if(!strcmp(privilege, "http://tizen.org/privilege/healthinfo"))
{
dlog_print(DLOG_DEBUG, TAG, "Service Application did not get any response to access the Health Information.");
}
}
}

typedef void(* ppm_request_response)(ppm_call_cause_e cause, ppm_request_result_e result, const char *privilege, void *user_data);

请求权限的方法调用:

//Set the function pointer value
ppm_request_response ppm_request_response_cb = ppm_request_response_handler;

//Request the user for the permission
ppm_request_permission(requiredPrivileges[i], ppm_request_response_cb, NULL);

预期行为:

服务应用程序应显示任何询问用户权限的消息,然后应调用 ppm_request_response_handler 方法来处理用户的响应。

最佳答案

据我所知,多权限调用仅在 Tizen 5+ 中可用,因此如果您使用 Tizen 4.0 API,则需要单独请求每个权限。

关于c - 如何请求 Tizen native 服务应用程序的隐私权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57991551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com