Java 如何在android应用程序中使用powerHint?

Java 如何在android应用程序中使用powerHint?,java,android,power-management,android-powermanager,Java,Android,Power Management,Android Powermanager,我正在进行电源优化 是否可以从应用程序调用PowerManagerService中的powerHint 我怎么称呼它?有没有办法通过下面的pm调用该方法 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); IPowerManager.powerHint()方法只是PowerHAL的powerHint()到nativePowerHint()的包装函数 如果你想让HAL做些什么,你应该实现你自己与hin

我正在进行电源优化

是否可以从应用程序调用
PowerManagerService
中的
powerHint

我怎么称呼它?有没有办法通过下面的pm调用该方法

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

IPowerManager.powerHint()
方法只是PowerHAL的
powerHint()
nativePowerHint()
的包装函数

如果你想让HAL做些什么,你应该实现你自己与hintId相关的动作,比如POWER\u HINT\u交互、POWER\u HINT\u LOW\u POWER等等


我认为直接调用powerHint()是SDK实现领域的一部分。请参阅对话。

它不是SDK的一部分。因此,apk不能调用它。它是自动管理的。 如果您想管理它,请修改您的目标

powerHint用于破坏用户交互或正在进行的图形活动(UI/UX动画)的性能

除了看一看powerHAL的示例实现之外,没什么可说的了,你可以了解人们是如何为特定的硬件实现它的,并为你的硬件模拟它们的。准备好后,只需将“电源”添加到设备的AndroidProducts.mk(或AndroidProducts包含的mk文件)中的产品包列表中,即可获得电源HAL

static void nativeSendPowerHint(JNIEnv *env, jclass clazz, jint hintId, jint data)
{
    int data_param = data;

    if (gPowerModule && gPowerModule->powerHint) {
        if(data)
            gPowerModule->powerHint(gPowerModule, (power_hint_t)hintId, &data_param);
        else {
            gPowerModule->powerHint(gPowerModule, (power_hint_t)hintId, NULL);
        }
    }
}