如何在native层获取屏幕亮度

如何在native层获取屏幕亮度

HarmonyOS
2024-04-27 23:49:41
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
济南二狗子

核心代码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}, 
};
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.

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%’) 
} 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
分享
微博
QQ
微信
回复
2024-04-28 21:15:27
相关问题
HarmonyOS 如何设置/获取屏幕亮度
918浏览 • 1回复 待解决
HarmonyOS 获取屏幕亮度值?
377浏览 • 1回复 待解决
获取系统的屏幕亮度
1204浏览 • 1回复 待解决
HarmonyOS 怎么获取当前屏幕亮度
780浏览 • 1回复 待解决
HarmonyOS 获取和设置屏幕亮度方法?
701浏览 • 0回复 待解决
如何在Native加载so库
2772浏览 • 1回复 待解决
HarmonyOS 如何控制屏幕亮度
576浏览 • 1回复 待解决
获取和设置应用内屏幕亮度
2244浏览 • 1回复 待解决
HarmonyOS 屏幕亮度
703浏览 • 1回复 待解决
harmonyos如何实现屏幕亮度调节
283浏览 • 0回复 待解决
HarmonyOS 如何设置屏幕亮度呢?
1577浏览 • 1回复 待解决
HarmonyOS 屏幕亮度设置
738浏览 • 1回复 待解决
是否有获取当前屏幕亮度的值的API
2912浏览 • 1回复 待解决
HarmonyOS 设置屏幕亮度问题
1199浏览 • 1回复 待解决
HarmonyOS 屏幕亮度变化回调
690浏览 • 1回复 待解决
HarmonyOS Native获取应用路径的方式
1075浏览 • 1回复 待解决
如何设置屏幕亮度有知道的吗?
2660浏览 • 1回复 待解决
如何在Native获取APP版本信息
3020浏览 • 1回复 待解决
HarmonyOS 如何获取系统当前亮度值?
741浏览 • 1回复 待解决