package com.example.readsysclass;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
Button button01;
TextView text01;
private int TIME = 2000;
static final String TAG="readsysclass";
private static final String CHARGER_CURRENT_NOW =
"/sys/class/power_supply/battery/current_now";
/**
* Read a text file into a String, optionally limiting the length.
*
* @param file to read (will not seek, so things like /proc files are OK)
* @param max length (positive for head, negative of tail, 0 for no limit)
* @param ellipsis to add of the file was truncated (can be null)
* @return the contents of the file, possibly truncated
* @throws IOException if something goes wrong reading the file
*/
public static String readTextFile(File file, int max, String ellipsis) throws IOException {
InputStream input = new FileInputStream(file);
try {
long size = file.length();
if (max > 0 || (size > 0 && max == 0)) { // "head" mode: read the first N bytes
if (size > 0 && (max == 0 || size < max)) max = (int) size;
byte[] data = new byte[max + 1];
int length = input.read(data);
if (length <= 0) return "";
if (length <= max) return new String(data, 0, length);
if (ellipsis == null) return new String(data, 0, max);
return new String(data, 0, max) + ellipsis;
} else if (max < 0) { // "tail" mode: keep the last N
int len;
boolean rolled = false;
byte[] last = null, data = null;
do {
if (last != null) rolled = true;
byte[] tmp = last;
last = data;
data = tmp;
if (data == null) data = new byte[-max];
len = input.read(data);
} while (len == data.length);
if (last == null && len <= 0) return "";
if (last == null) return new String(data, 0, len);
if (len > 0) {
rolled = true;
System.arraycopy(last, len, last, 0, last.length - len);
System.arraycopy(data, 0, last, last.length - len, len);
}
if (ellipsis == null || !rolled) return new String(last);
return ellipsis + new String(last);
} else { // "cat" mode: size unknown, read it all in streaming fashion
ByteArrayOutputStream contents = new ByteArrayOutputStream();
int len;
byte[] data = new byte[1024];
do {
len = input.read(data);
if (len > 0) contents.write(data, 0, len);
} while (len == data.length);
return contents.toString();
}
} finally {
input.close();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button01 = (Button)findViewById(R.id.button01);
text01 = (TextView)findViewById(R.id.text01);
button01.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
handler.postDelayed(runnable, TIME); //每隔1s执行
}
});
}
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
handler.postDelayed(this, TIME);
try {
String mode1 = readTextFile(new File(CHARGER_CURRENT_NOW), 0, null).trim();
text01.setText(mode1);
Log.e(TAG,mode1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}
Android 读sys/class/power_supply/battery/cureent_now的值
原创mb60ffdbe016b5d 博主文章分类:Android ©著作权
©著作权归作者所有:来自51CTO博客作者mb60ffdbe016b5d的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:我的合伙人
下一篇:打印时间(MS级别)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
cocos creator 打开场景错误 [Scene] Missing class
本文给出cocos creator打开github上开源工程遭遇错误时遇到的一种可能问题的解决方案。
cocos creator 打开场景错误 missing class -
ClassFactory cannot supply requested class
安装solarwinds 网络监控软件,发现自己开发的vb系统有问题,提示auotmation error:
职场 休闲 ClassFactory cannot -
Linux power supply class hacking
本文主要是记录linux电源管理的工作机制是什么,那些供Android jni使用的属性文件是如何生成的,调用机制是什么。
linux #define i++ ide android -
maven 导入 ffmpeg
目录一、什么是 Kafka ?二、为什么要用 Kafka ?三、Kafka 环境安装四、Spring Boot 2.x 整合 Kafka五、总结六、GitHub 源码地址什么是 Kafka?Kafka 是 Apache 基金会开源的一个分布式发布 - 订阅消息中间件,流处理平台。 它起源于 LinkedIn,由 Scala 和 Java两种语言编写而成。于 2011 年成为 Apac
maven 导入 ffmpeg kafka maven 依赖 kafka maven没有下载 spring boot kafka kafka