如何在native层获取屏幕亮度

如何在native层获取屏幕亮度

HarmonyOS
2024-04-27 23:49:41
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
LenZhong

核心代码1:

#include “napi/native_api.h” 
#include <iostream> 
 
#define LOG_TAG “NAPI_HELLO_CPP” 
#include “hilog/log.h” 
 
static napi_value success(napi_env env, napi_callback_info info) { 
size_t argc = 1; 
napi_value args[1] = {nullptr}; 
 
napi_status get = napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); 
 
napi_value obj = args[0]; 
napi_value key; 
napi_value rv; 
std::string x = “value”; 
napi_create_string_utf8(env, x.c_str(), 5, &key); 
napi_get_property(env, obj, key, &rv); 
 
uint32_t result; 
napi_get_value_uint32(env, rv, &result); 
OH_LOG_INFO(LOG_APP, “napi get brightness %{public}d”, result); 
return nullptr; 
} 
static napi_value fail(napi_env env, napi_callback_info info) { return nullptr; } 
 
static napi_value complete(napi_env env, napi_callback_info info) { return nullptr; }
核心代码2:
static napi_value NapiLoadModule(napi_env env, napi_callback_info info) { 
napi_value result; 
 
size_t argc = 1; 
napi_value args[1] = {nullptr}; 
napi_status get = napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); 
 
char path[64] = {0}; 
size_t typeLen = 0; 
napi_get_value_string_utf8(env, args[0], path, sizeof(path), &typeLen); 
 
napi_status status = napi_load_module(env, path, &result); 
if (status != napi_ok) { 
OH_LOG_ERROR(LOG_APP, “napi_load_module failed”); 
return nullptr; 
} 
 
napi_value outputObject; 
napi_get_named_property(env, result, “getValue”, &outputObject); 
 
napi_value arg; 
napi_create_object(env, &arg); 
napi_property_descriptor desc[] = { 
{“success”, nullptr, success, nullptr, nullptr, nullptr, napi_default, nullptr}, 
{“fail”, nullptr, fail, nullptr, nullptr, nullptr, napi_default, nullptr}, 
{“complete”, nullptr, complete, nullptr, nullptr, nullptr, napi_default, nullptr}}; 
napi_status define = napi_define_properties(env, arg, sizeof(desc) / sizeof(desc[0]), desc); 
 
napi_status call = napi_call_function(env, result, outputObject, 1, &arg, nullptr); 
 
return result; 
} 
 
EXTERN_C_START 
static napi_value Init(napi_env env, napi_value exports) { 
napi_property_descriptor desc[] = { 
{“napiLoadModule”, nullptr, NapiLoadModule, nullptr, nullptr, nullptr, napi_default, nullptr}}; 
napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); 
return exports; 
} 
EXTERN_C_END 
 
static napi_module demoModule = { 
.nm_version = 1, 
.nm_flags = 0, 
.nm_filename = nullptr, 
.nm_register_func = Init, 
.nm_modname = “entry”, 
.nm_priv = ((void *)0), 
.reserved = {0}, 
};

ArkTS层代码:

import testNapi from ‘libentry.so’; 
 
@Entry 
@Component 
struct Index { 
@State message: string = ‘Hello World’; 
 
build() { 
Row() { 
Column() { 
Text(this.message) 
.fontSize(50) 
.fontWeight(FontWeight.Bold) 
.onClick(() => { 
console.log(“chenlin click”) 
testNapi.napiLoadModule("@system.brightness"); 
}) 
} 
.width(‘100%’) 
} 
.height(‘100%’) 
} 
}
分享
微博
QQ
微信
回复
2024-04-28 21:15:27
相关问题
是否有获取当前屏幕亮度的值的API
451浏览 • 1回复 待解决
如何设置屏幕亮度有知道的吗?
312浏览 • 1回复 待解决
如何在Native获取APP版本信息
346浏览 • 1回复 待解决
如何在Native侧释放ArkTS对象
460浏览 • 1回复 待解决
如何获取系统屏幕固定。
1809浏览 • 0回复 待解决
native如何访问rawfile的二进制文件
358浏览 • 1回复 待解决
鸿蒙响应屏幕触摸事件如何获取
5722浏览 • 1回复 已解决
如何在Native侧构建一个ArkTS对象
374浏览 • 1回复 待解决
Native如何通过napi获取ArrayBuffer?
1423浏览 • 1回复 待解决
如何在UI中获取Context
515浏览 • 1回复 待解决
如何在UI中获取UIAbilityContext
429浏览 • 1回复 待解决
鸿蒙js如何获取设备屏幕宽和高?
3585浏览 • 1回复 待解决
如何在工具类中获取Context
257浏览 • 1回复 待解决
通过Native 调用c++实现文本绘制
53浏览 • 0回复 待解决
屏幕宽高如何获取 ,求解决方法
119浏览 • 1回复 待解决
如何获取屏幕宽高,你知道吗?
556浏览 • 1回复 待解决
java如何获取屏幕宽高。找不到api?
3886浏览 • 1回复 待解决
如何获取组件宽高和在屏幕上的位置
610浏览 • 1回复 待解决