gpt4 book ai didi

cordova - 如何在需要时获取 cordova 2.9 的电池电量?

转载 作者:行者123 更新时间:2023-12-02 12:07:18 25 4
gpt4 key购买 nike

window.addEventListener("batterystatus", onBatteryStatus, false);
function onBatteryStatus(info) {
// Handle the online event
console.log("Level: " + info.level + " isPlugged: " + info.isPlugged);
}

我想获取 cordova Phone-Gap 2.9 中的电池电量。他们提供此信息来获取电池电量和状态

但它只能触发电池状态变化,但在我们需要时无法触发。有没有办法获取 Cordova 的电池电量?

最佳答案

无法在需要时获取电池电量。该方法仅在电池状态更改或电池电量更改时触发。这里我编写了一个插件,用于随时随地获取电池电量。

在源文件夹中创建这些java文件

在源文件夹中创建 Bat_lev 插件

package org.apache.cordova.example;

import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;

import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;







public class Bat_lev extends CordovaPlugin {


@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("echo")) {
String message = args.getString(0);
this.echo(message, callbackContext);
return true;
}
return false;
}

private void echo(String message, CallbackContext callbackContext) {


PowerConnectionReceiver p1=new PowerConnectionReceiver();
Context context=cordova.getActivity();
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
p1.onReceive(cordova.getActivity(), batteryStatus);

callbackContext.success(""+ p1.BAT_LEVEL);
}




}

下面的java类向我们提供电池电量

package org.apache.cordova.example;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.BatteryManager;

public class PowerConnectionReceiver extends BroadcastReceiver {

static int BAT_LEVEL;

@Override
public void onReceive(Context context, Intent intent) {


int currentLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
int level = -1;
if (currentLevel >= 0 && scale > 0) {
level = (currentLevel * 100) / scale;
}
BAT_LEVEL = level;
}
}

编写此 JavaScript 代码来获取电池电量

 function bat_level() {
window.echo = function(str, callback) {
cordova.exec(callback, function(err) {
callback('Nothing to echo.');
}, "Bat_lev", "echo", [str]);
};

window.echo("echome", function(echoValue) {
console.log(echoValue);
localStorage.bat_level=echoValue;//u can use this value anywhere u want
});

}

并确保将此行添加到 config.xml

<feature name="Bat_lev" >
<param
name="android-package"
value="org.apache.cordova.example.Bat_lev" />
</feature>

关于cordova - 如何在需要时获取 cordova 2.9 的电池电量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21478704/

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