1
我想显示电源连接和我的应用程序断开连接之间的持续时间....我试图做类似下面......如何在android中显示电源连接持续时间?
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.batterystat);
batteryStatInfo = (TextView) findViewById(R.id.batteryStatusInfo);
this.registerReceiver(this.batteryStatRec, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
private BroadcastReceiver batteryStatRec = new BroadcastReceiver()
{
public void onReceive(Context context, Intent intent)
{
int health = intent.getIntExtra(BatteryManager.EXTRA_HEALTH,0);
int icon = intent.getIntExtra(BatteryManager.EXTRA_ICON_SMALL, 0);
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
int chargingBy = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
boolean isChargingByUsb = chargingBy == BatteryManager.BATTERY_PLUGGED_USB;
boolean isChargingByAc = chargingBy == BatteryManager.BATTERY_PLUGGED_AC;
if(intent.getAction().equals(Intent.ACTION_POWER_CONNECTED))
{
time = new Time();
time.setToNow();
shour = time.hour;
sminutee = time.minute;
prefs.edit().putInt("shour", shour).commit();
prefs.edit().putInt("sminute", sminutee).commit();
statusBat += "Power Connected \n";
}
else if(intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED))
{
time = new Time();
time.setToNow();
ehour = time.hour;
eminutee = time.minute;
prefs.edit().putInt("ehour", ehour).commit();
prefs.edit().putInt("eminute", eminutee).commit();
statusBat += "Power Disconnected \n";
}
int eHour = prefs.getInt("ehour", 0);
int sHour = prefs.getInt("shour", 0);
int eMinute = prefs.getInt("eminutee", 0);
int sMinute = prefs.getInt("sminutee", 0);
int fHour = eHour - sHour;
int fMinute = eMinute - sMinute;
//statusBat += "Total ChargingTime : "+fHour+":"+fMinute+"\n";
batteryStatInfo.setText(statusBat);
//batteryStatImage.setImageResource(icon);
};
};
,但我没有得到的结果....和我的应用程序一直崩溃......有没有其他方式来做到这一点?
错误:
03-03 13:04:32.910: E/AndroidRuntime(28227): FATAL EXCEPTION: main
03-03 13:04:32.910: E/AndroidRuntime(28227): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) } in [email protected]
03-03 13:04:32.910: E/AndroidRuntime(28227): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:798)
03-03 13:04:32.910: E/AndroidRuntime(28227): at android.os.Handler.handleCallback(Handler.java:800)
03-03 13:04:32.910: E/AndroidRuntime(28227): at android.os.Handler.dispatchMessage(Handler.java:100)
03-03 13:04:32.910: E/AndroidRuntime(28227): at android.os.Looper.loop(Looper.java:194)
03-03 13:04:32.910: E/AndroidRuntime(28227): at android.app.ActivityThread.main(ActivityThread.java:5410)
03-03 13:04:32.910: E/AndroidRuntime(28227): at java.lang.reflect.Method.invokeNative(Native Method)
03-03 13:04:32.910: E/AndroidRuntime(28227): at java.lang.reflect.Method.invoke(Method.java:525)
03-03 13:04:32.910: E/AndroidRuntime(28227): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
03-03 13:04:32.910: E/AndroidRuntime(28227): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
03-03 13:04:32.910: E/AndroidRuntime(28227): at dalvik.system.NativeStart.main(Native Method)
03-03 13:04:32.910: E/AndroidRuntime(28227): Caused by: java.lang.NullPointerException
03-03 13:04:32.910: E/AndroidRuntime(28227): at com.rhs.systmenetworkstat.BatteryStatus$1.onReceive(BatteryStatus.java:139)
03-03 13:04:32.910: E/AndroidRuntime(28227): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:788)
03-03 13:04:32.910: E/AndroidRuntime(28227): ... 9 more
请发表您的错误日志 – Kedarnath 2015-03-03 07:02:29
下面是错误.... – 2015-03-03 07:05:03