当前位置: 首页 > 知识库问答 >
问题:

捕获SDK请求电池电量不工作

卢和昶
2023-03-14

需要一些关于Android新捕获SDK的帮助。我在一个活动中使用以下代码。

Capture.builder(getApplicationContext())
                    .enableLogging(BuildConfig.DEBUG)
                    .appKey(appKey)
                    .build();
            captureClient = new CaptureClient(appKey);
            captureClient.setListener(this);
            captureClient.connect(connectionCallback);

我在顶级活动中使用正确的appKey和appid。

我想申请电池电量。我该怎么做?我实现了一个侦听器,但不确定如何发出请求。

好的,接下来我有这个要求:

if (mDevice != null) {
    mDevice.getBatteryLevel(propertyCallback);
}

PropertyCallback propertyCallback = new PropertyCallback() {
        @Override
        public void onComplete(@Nullable CaptureError captureError, @Nullable Property property) {
            if (captureError != null) {
                Log.d("onComplete", String.format("capture error %s", captureError.getMessage()));
            } else {
                if (property != null) {
                    Log.d("onComplete", String.format("property set %d", property.getId()));
                    Preference socketCharge = (Preference) findPreference("bt_scanner_battery_charge");
                    if (socketCharge != null) {
                        try {
                            int i = property.getInt();
                            socketCharge.setSummary(String.format("Current charge level: %d%%", i));
                        } catch (Exception e) {
                            Log.e("SocketChargeError", "" + e.getMessage());
                        }
                    }
                }
            }
        }
    };

上面的代码执行往返,并调用属性回调,但属性中包含的信息不是百分比。

这是侦听器(从不调用),即使我的类实现了它并订阅了“事物”。

@覆盖公共无效OnBatteryLevel更改(int i){

共有1个答案

金坚
2023-03-14

好的,在与Socket Mobile的支持人员交谈后,一位软件工程师告诉我电池电量信息是如何打包到属性响应中的。在这里。。。现在只需将其格式化以供显示!

Code:
    int value = property.getInt();
    int current = value >>> 8 & 0xFF;
    int min = value >>> 16 & 0xFF;
    int max = value >>> 24 & 0xFF;
    Double batteryPercent = current * 100.0 / (max - min);
 类似资料:
  • 问题内容: 如何获得电池电量和状态(插入,放电,充电等)?我研究了开发人员文档,并找到了BatteryManager类。但是它不包含任何方法,仅包含常量。我什至如何使用它? 问题答案: 这是一个代码示例,解释了如何获取电池信息。 综上所述,动态地设置了该意图的广播接收器,因为只有通过使用显式注册它才能通过清单中声明的​​组件来接收它。

  • 我正在尝试构建一个应用程序,以获取当前连接的蓝牙耳机的电池电量。此应用程序可以在没有内置此功能的手机上使用 在stackoverflow上搜索时,我发现如何在android中获取蓝牙耳机电池状态这个问题。我使用BluetoothProfile获得了当前连接的蓝牙耳机。耳机情景模式 但是在BluetoothDevice类型的device对象中,我看不到任何获取蓝牙耳机电池电量的方法或属性 我可以获取

  • 问题内容: 我刚启动Swift,一直在寻找一种检查电池电量的方法。我找到了该资源并一直在使用它,但是由于某种原因似乎无法使它正常工作。 我不太确定如何解决此问题。有任何想法吗? 问题答案: Xcode 11•Swift 5.1 首先只需启用电池监控: 然后,您可以创建一个计算属性以返回电池电量: 电池电量从0.0(完全放电)到1.0(100%充电)。访问此属性之前,请确保已启用电池监视。如果未启用

  • 在产品使用寿命结束时,Polar 鼓励您遵守当地的废弃物处理法规,并在可能的情况下利用电子设备分类收集,将废弃物对环境和人类健康的可能影响降到最低。不要将本产品作为未分类的城市垃圾处理。 为电池充电 Verity Sense 内置一块可充电电池。可充电电池的充电循环次数有限。您可在电容量明显下降之前,对电池进行 500 多次的充放电。充电循环次数还会因使用及工作条件而异。 在充电前,请确保您的 V

  • 在产品无法再次为您提供服务时, Polar 鼓励您按照地方废弃物处置条例,如果可能,对电子设备进行分类收集,以尽量降低废弃物对环境和人类健康可能产生的影响。不要将本产品作为未分类的城市垃圾处理。 电池充电 在充电前,请确保您的手表和连接线的充电触点上没有水分、灰尘或脏污。轻轻擦掉脏污或水分。手表沾了水时,不要充电。 手表配备了一块内部可充电电池。可充电电池的充电次数有限。您可在电容量明显下降之前,

  • 在产品无法再次为您提供服务时, Polar 鼓励您按照地方废弃物处置条例,如果可能,对电子设备进行分类收集,以尽量降低废弃物对环境和人类健康可能产生的影响。不要将本产品作为未分类的城市垃圾处理。 电池充电 在充电前,请确保您的手表和连接线的充电触点上没有水分、灰尘或脏污。轻轻擦掉脏污或水分。手表沾了水时,不要充电。 手表配备了一块内部可充电电池。可充电电池的充电次数有限。您可在电容量明显下降之前,