我正在开发Android Wear Watch Face,我想显示手表和手机的电池百分比.我设法得到了手表的百分比,但我是Java和Android的新手,所以请通过解释轻松告诉我.
private String getBatteryInfoPhone()
{
float retVal = 0;
IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = registerReceiver(null, iFilter);
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
retVal = level / (float)scale;
return Integer.toString(Math.round(retVal)) + "%";
}
Run Code Online (Sandbox Code Playgroud)
这是我现在的代码,用来给我手机的百分比.请注意,这是一个Watch Face,因此它是一项没有活动的服务.
使用此解决方案,我不断获得1%而不是实际百分比.
我想分析Telegram-Chats,所以我以JSON格式导出了聊天,并想将其反序列化到我的分析软件中。
{
"id": 397910,
"type": "message",
"date": "2018-02-21T10:27:59",
"edited": "1970-01-01T01:00:00",
"from": "Username",
"from_id": 39033284,
"text": "Some Text"
}
Run Code Online (Sandbox Code Playgroud)
所以我用这个简单的代码来读取JSON
List<JSONObject> jsonObjects = JsonConvert.DeserializeObject<List<JSONObject>>(File.ReadAllText(openFileDialog.FileName));
public class JSONObject
{
public int ID;
public string type;
public string date;
public string edited;
public string from;
public int fromID;
public string photo;
public int width;
public int height;
public string text;
}
Run Code Online (Sandbox Code Playgroud)
对于前525个数据集来说,这非常顺利,但是之后,由于“一致性问题”,我难以对数据进行反序列化。文本的数据类型有时会更改为数组。
{
"id": 397911,
"type": "message",
"date": "2018-02-21T10:31:47",
"edited": "1970-01-01T01:00:00",
"from": "Username",
"from_id": 272964614,
"text": [
"Some Text ",
{
"type": "mention", …Run Code Online (Sandbox Code Playgroud)