捕获 SDK 请求电池电量不工作
Capture SDK request battery level not working
需要有关 Android 的新 Capture SDK 的帮助。我在 activity.
上使用以下代码
Capture.builder(getApplicationContext())
.enableLogging(BuildConfig.DEBUG)
.appKey(appKey)
.build();
captureClient = new CaptureClient(appKey);
captureClient.setListener(this);
captureClient.connect(connectionCallback);
我在顶层使用我正确的 appKey 和 appid activity。
我想查询电池电量。我该怎么做呢?
我已经实现了一个侦听器,但不确定如何发出请求。
好的,接下来我有这个请求:
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());
}
}
}
}
}
};
上面的代码执行往返并调用 属性 回调,但 属性 中包含的信息不是百分比。
这是监听器(从未被调用),即使我的 class 实现了它并订阅了 'things'。
@Override
public void onBatteryLevelChanged(int i) {
好的,在与 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);
需要有关 Android 的新 Capture SDK 的帮助。我在 activity.
上使用以下代码Capture.builder(getApplicationContext())
.enableLogging(BuildConfig.DEBUG)
.appKey(appKey)
.build();
captureClient = new CaptureClient(appKey);
captureClient.setListener(this);
captureClient.connect(connectionCallback);
我在顶层使用我正确的 appKey 和 appid activity。
我想查询电池电量。我该怎么做呢? 我已经实现了一个侦听器,但不确定如何发出请求。
好的,接下来我有这个请求:
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());
}
}
}
}
}
};
上面的代码执行往返并调用 属性 回调,但 属性 中包含的信息不是百分比。
这是监听器(从未被调用),即使我的 class 实现了它并订阅了 'things'。
@Override public void onBatteryLevelChanged(int i) {
好的,在与 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);