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

2024-05-01

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 中的电池电量。他们提供此信息来获取电池电量和状态

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


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

在源文件夹中创建这些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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在需要时获取 cordova 2.9 的电池电量? 的相关文章

  • iOS PhoneGap 调试工作流程

    如何在 Xcode 中调试 javascript 我可以做的一件事是在 OS X Chrome 浏览器中打开页面 但这自然不适用于涉及本机代码的应用程序流 我是否缺少一个聪明的 Xcode 技巧 随着 iOS 6 的发布 Apple 与 M
  • Phonegap 中使用 AJAX 的 CSRF 令牌

    我正在开发一个应用程序Phonegap使用 Django 后端 后端使用csrf 所以我需要我的Phonegap要使用的应用程序csrf所以它可以与Django 我读到你可以使用csrf通过Ajax 但我没能让它工作 您能举个例子告诉我我该
  • 分享一些东西到phonegap应用程序

    有什么方法可以注册phonegap应用程序以显示在要共享的应用程序菜单中吗 要出现在此列表中 您必须修改 AndroidManifest xml 文件并在您的 Activity 下添加以下行
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • 使用 Adob​​e PhoneGap + Angular2 时不显示图像(图片和 src)

    我使用 cli 创建了一个全新的项目 我尝试添加一些图像标签 每个标签都有不同类型的来源 本地图片 网络图片 https来源图片 在浏览器上 这可以很好地呈现所有内容 但是当使用 Adob e PhoneGap 通过 PhoneGap 桌面
  • 混合应用程序开发(PhoneGap、Cordova、Ionic)

    我试图了解一切是如何运作的 但对此主题有一些疑问 我将解释我如何理解这些东西 首先让我们从Cordova这是翻译平台JS CSS HTML文件到本机应用程序中 但这并不完全是事实 实际上 它只是将所有 html css 文件放入 asset
  • Cordova,为什么需要 InAppBrowser 插件才能在系统浏览器中打开链接

    我有一个 Cordova 应用程序 它是一个带有单个 HTML 文件的单页应用程序 所有链接都应在系统浏览器中打开 我不需要 嵌入式 InAppBrowser 而是真正的本机系统 外部浏览器 我们到处都可以找到使用 InAppBrowser
  • 当应用程序停止使用 Sencha Touch 2.2 和 Phonegap 时,LocalStorage 存储不会保留在 Android 手机上

    这在我的浏览器中工作正常 但是当我在手机上安装该应用程序并使用它时 它看起来很好 直到我强制它停止并重新打开该应用程序 然后我的所有记录都消失了 我正在使用 2 2 和 Phonegap 任何帮助将非常感激 这是我的商店 Ext defin
  • Cordova 上的 ClearCookiesAsync()

    我正在尝试使用 wp8 cordova 中的插件来清除 WebBrowser cookie 我已经让它与 JavaScript 进行通信 并且我的 c 文件中有类似这样的内容 using WPCordovaClassLib Cordova
  • 无法在cordova项目中安装插件

    我面临一个大问题 Unable to install the phonegap plugins在我的科尔多瓦项目中 实际上昨天它仍然工作正常 现在 每当我尝试在我的 cordova 项目中使用 CLI 添加任何 cordova 插件时 我收
  • Android PhoneGap 中的自定义字体

    我尝试为我的应用程序制作自定义字体 为此 我在 html 文件中编写了以下代码 在我的 HTML 正文中
  • Cordova Phonegap“导出失败”错误代码 70 构建 ios 时

    我目前正在使用 Cordova Phonegap 构建 iOS 应用程序 本来工作正常 但现在运行时出现错误cordova build ios在终端中 我收到以下错误 导出失败 错误 命令的错误代码 70 带有参数的 xcodebuild
  • PhoneGap 1.4 封装 Sencha Touch 2.X - 性能怎么样?

    我正在构建一个多平台平板电脑应用程序 仅使用其 Webview 使用 Phonegap 1 4 对其进行包装 然后使用 Sencha Touch 2 框架发挥我的魔力 我所说的多平台是指 iOS 5 X 和 Android 3 0 目前 到
  • 无法使用cordova-plugin-file-transfer上传base64图像

    我正在尝试使用 cordova plugin file transfer 将 Base64 格式的图像上传到我的服务器 但到目前为止它还无法正常工作 我的代码是这样的 photoBase64 photoBase64 replace data
  • PhoneGap、getDeviceInfo 上的 EXC_BAD_ACCESS 的解决方法

    我遇到过EXC BAD ACCESS on getDeviceInfo对于应用程序 当升级到XCode 5 1并支持iOS 7 1 For XCode 5 1 和 iOS 7 1 它的内存管理非常严格 导致我在 iPhone 5s 上的 P
  • 当对phonegap应用程序进行更改时,Eclipse不更新apk

    已经有人问过这个问题 但没有一个答案有效 例如清理 刷新 更改版本号等 当对源文件进行更改时 Eclipse 不会重建 android 项目 这是一个phonegap应用程序 如果我更改html文件甚至java代码 我仍然得到相同的apk
  • Ionic-Angular.js 拍照并发送到服务器:空图像

    因此 我设法使用自定义指令通过 Angular js 将图像上传到我的服务器 我还成功地实现了 Cordova 的相机功能 现在我尝试连接两者 但是当将图像发送到服务器时 它们被存储为空 我认为问题在于我使用输入字段来获取图像 并且它获取了
  • 扩展 cordova gradle 文件以包含 google 服务

    我正在尝试包括com google gms google services 3 0 0进入我的cordova插件 而无需将其破解到主程序中build gradle文件 我已将以下文件添加到我的应用程序中 构建 extras gradle b
  • Jquery 移动应用程序的奇怪行为

    我创建了一个应用程序 其中包含多个主页按钮 单击其中一个按钮 我的应用程序将重定向到某个视图 其中包含 JQM 表单 JQM 日历 文本字段 按钮和数据库等 我的问题是 当我在 Android 设备上测试我的应用程序时 即使我没有使用任何图
  • 服务器到 Phonegap 推送:SignalR 与 Azure 通知中心

    好吧 我在继续开发 Phonegap 应用程序时陷入了两难境地 对于实时事件通知 我应该使用 Azure 通知中心还是 SignalR 据我了解 SignalR 通过使用 Web Sockets 非常适合实时 Web 应用程序 而通知中心可

随机推荐

  • 如何仅将列表中每个字符串的标题大写?

    整个问题 编写一个函数 该函数将字符串列表作为参数 并返回一个包含每个大写字符串作为标题的列表 也就是说 如果输入参数是 apple pie brownies chocolate dulce de leche eclairs 你的函数应该返
  • 在外部 div 悬停时将样式应用于内部 div [重复]

    这个问题在这里已经有答案了 我有一些看起来像这样的 HTML div class TheOuterClass div class TheInnerClass some text div div 使用以下 CSS TheOuterClass
  • 将鼠标悬停在 R 中的传单时弹出?

    我的传单地图看起来像这样 library sp library leaflet circleFun lt function center c 0 0 diameter 1 npoints 100 r diameter 2 tt lt seq
  • 如何以非交互方式指定“psql”的密码?

    我正在尝试使用 shell 脚本自动执行数据库创建过程 但我遇到了向其传递密码的障碍psql https en wikipedia org wiki PostgreSQL Database administration 下面是 shell
  • 如何从屏幕上的任意位置拖动底页?

    我正在尝试实现类似 YouTube 的体验 并允许用户从屏幕中的任何位置拖动底部工作表 我尝试了很多解决方案没有任何帮助 我终于从这个解决方案中找到了解决方案在外部区域达到阈值后允许 BottomSheet 向上滑动 https stack
  • ASP.NET 中的大数组支持

    最近有了 4 5 NET 支持 用户可以为一个对象分配超过 2 GB 的内存 为了做到这一点 用户可以在 app config 文件中将 gcAllowVeryLargeObjects 设置为 true 一切都会正常工作 但是我很难找到 A
  • MVC 自定义路由。 DataTokens["Namespaces"] 被忽略

    我不知道为什么在创建时CustomRoute它继承自Route 场DataTokens Namespaces 被忽略 我收到错误 发现多种类型与名为 Home 的控制器匹配 如果服务此请求的路由 action id 未指定命名空间来搜索与请
  • 是否可以在 Lambda 表达式中包含 SqlFunctions.StringConvert?

    我一直在学习表达式并使用下面的代码添加针对数据库模型构建的表达式 EF4 ORACLE 而不是 SQL 这非常适合 Oracle 并允许我动态构建谓词 例如 CustomerId Contains 2 into f gt f Custome
  • 为什么 to_proc 在 Ruby 改进中不起作用?

    看起来to proc不适用于细化中定义的方法 module ArrayExtensions refine Array do def sum reduce 0 end end end using ArrayExtensions puts 1
  • Flaky Android Espresso 测试 - Snackbar

    1 所有正在测试的设备 模拟器都禁用了动画 2 我有一个 BeforeClass 来构建我的 Credentials 对象 3 我有一个IntenServiceIdlingResource和一个EventBusIdlingResource
  • 我应该为 PyDev 下载哪个 Eclipse 包?

    我应该选择哪个 Eclipse 包来进行 Python 开发PyDev http www pydev org Eclipse 主页上没有任何内容告诉我要选择什么 并且 PyDev 文档假设我已经安装了 Eclipse 我选择哪个 Eclip
  • 错误:在 Google 应用引擎上部署节点 js 时找不到模块“/workspace/server.js”

    经过一周的搜索 我无法找到适用于我的 Node js 应用程序的应用程序引擎部署问题的解决方案 我已经用这个替换了原来的代码Express 的 hello world 示例 https expressjs com en starter he
  • 重定向到无状态会话的原始 URL

    我正在尝试创建无状态安全性 其中 JWT 令牌存储在 Cookie 而不是 SESSION 中 问题是如果没有会话SavedRequestAwareAuthenticationSuccessHandler不知道原始请求 在弹出身份验证页面之
  • SPA 模式下的 AngularJS 和元标记

    你们中有人已经找到了一种在 SPA 模式下使用 AngularJS 处理元标签的优雅方法吗 在基本模板中 我有一些默认的元标记 对于每条路线 每个控制器都会加载具有不同内容的不同视图 很正常 但是我如何更改每个页面的元标记呢 此外 有些页面
  • XAML UWP 浮出控件定位

    I am implementing a Flyout in a UWP app as you can see on the image below I want the AutoSuggestBox in the Flyout to app
  • 索引数组时应该始终使用 size_t 吗?

    我需要使用吗size t总是在索引数组时即使数组没有大到超过 int 的大小 这不是我应该什么时候使用的问题size t 我只想知道 例如 一个程序是否具有 2GB 可用内存 所有这些字段都可以通过 int32 进行索引 但该内存 虚拟内存
  • Java Swing - JLabel 位置

    我在设置 Jlabel 位置时遇到问题 我将内容窗格设置为某个 JPanel 我创建并尝试添加我的 JLabel JLabel mainTitle new JLabel SomeApp mainTitle setFont new Font
  • Laravel Blade 创建 url

    我有一个简单的问题 基本上我从数据库中获取网站的名称并根据其名称创建一个链接 看起来像 foreach websites as website a class websites href asset website gt name a en
  • 经过一段时间后一张一张地显示图像

    我是前端开发的新人 我面临的一个主要问题是我有 3 个图像相互放置 现在我想移动一个图像 以便另一个图像出现 然后它消失 第三个图像在经过一段时间后出现时间间隔 我希望在我的网站中的同一位置上放置三张图像 但只想在一段时间后一张接一张地查看
  • 如何在需要时获取 cordova 2.9 的电池电量?

    window addEventListener batterystatus onBatteryStatus false function onBatteryStatus info Handle the online event consol