package com.test;
import java.io.FileWriter;
import java.io.IOException;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
Button stopBut;
Button clearBut;
TextView textView;
CheckBox mCheckBox1, mCheckBox2;
int bootNumber;
boolean isCBChecked;
boolean isReboot = false;
Context mContext;
private static final String BOOT_NUMBER = "mBootNumber";
private static final int SHUT_DOWN = 0;
private static final int PLAY_VIDEO = 1;
private static final String TAG = "MainActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mContext = this;
stopBut = (Button) findViewById(R.id.stopBut);
clearBut = (Button) findViewById(R.id.clearBut);
textView = (TextView) findViewById(R.id.mTextView);
mCheckBox1 = (CheckBox) findViewById(R.id.CheckBox1);
mCheckBox2 = (CheckBox) findViewById(R.id.CheckBox2);
stopBut.setOnClickListener(this);
clearBut.setOnClickListener(this);
onReboot();
// 启动保存log日志apk
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.logcat", "com.logcat.MainActivity"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
//Intent mIntent = new Intent();
//mIntent = getPackageManager().getLaunchIntentForPackage(packageName);
//startActivity(mIntent);
SharedPreferences pres = getSharedPreferences(BOOT_NUMBER,Context.MODE_WORLD_READABLE);
if (pres != null) {
bootNumber = pres.getInt("boot_Number", 0);
isCBChecked = pres.getBoolean("CheckBox_", true);
}
Log.i(TAG, "---------onCreate number:" + bootNumber);
textView.setText("开机次数:" + bootNumber);
bootNumber++;
if (isCBChecked) {
mCheckBox1.setChecked(true);
mCheckBox2.setChecked(false);
mHandler.sendEmptyMessageDelayed(SHUT_DOWN, 8000);
Log.i(TAG, "---------isCBChecked:mCheckBox1" );
} else {
mCheckBox1.setChecked(false);
mCheckBox2.setChecked(true);
mHandler.sendEmptyMessageDelayed(PLAY_VIDEO, 4000);
Log.i(TAG, "---------isCBChecked:mCheckBox2" );
}
mCheckBox1
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
SharedPreferences pres = getSharedPreferences(
BOOT_NUMBER, Context.MODE_WORLD_READABLE);
if (isChecked) {
isCBChecked = true;
mCheckBox1.setChecked(true);
mCheckBox2.setChecked(false);
if (pres != null) {
SharedPreferences.Editor ed = pres.edit();
ed.putBoolean("CheckBox_", true);
ed.commit();
}
} else {
isCBChecked = false;
SharedPreferences.Editor ed = pres.edit();
ed.putBoolean("CheckBox_", false);
ed.commit();
}
}
});
mCheckBox2
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
SharedPreferences pres = getSharedPreferences(
BOOT_NUMBER, Context.MODE_WORLD_READABLE);
if (isChecked) {
isCBChecked = false;
mCheckBox2.setChecked(true);
mCheckBox1.setChecked(false);
if (pres != null) {
SharedPreferences.Editor ed = pres.edit();
ed.putBoolean("CheckBox_", false);
ed.commit();
}
} else {
isCBChecked = true;
SharedPreferences.Editor ed = pres.edit();
ed.putBoolean("CheckBox_", true);
ed.commit();
}
}
});
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SHUT_DOWN:
onShutdown();
break;
case PLAY_VIDEO:
onPlayVideo();
break;
default:
break;
}
}
};
@Override
public void onClick(View view) {
if (view == stopBut) {
Log.i(TAG, " stop");
new AlertDialog.Builder(this).setMessage("停止重启设备").setPositiveButton("OK", null).show();
stop();
mHandler.removeMessages(SHUT_DOWN);
} else if (view == clearBut) {
Log.i(TAG, " clear");
SharedPreferences pres = getSharedPreferences(BOOT_NUMBER,Context.MODE_WORLD_READABLE);
if (pres != null) {
SharedPreferences.Editor ed = pres.edit();
ed.putInt("boot_Number", 0);
ed.commit();
}
bootNumber = 0;
textView.setText("开机次数:" + 0);
}
}
public void onShutdown() {
SharedPreferences pres = getSharedPreferences(BOOT_NUMBER,Context.MODE_WORLD_READABLE);
if (pres != null) {
SharedPreferences.Editor ed = pres.edit();
ed.putInt("boot_Number", bootNumber);
ed.commit();
}
//关机
PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
pm.reboot("recovery");
}
private void onPlayVideo(){
mHandler.sendEmptyMessageDelayed(SHUT_DOWN, 90000);
Intent playVideo = new Intent();
playVideo.setClass(MainActivity.this, VideoActicity.class);
startActivity(playVideo);
}
private void stop() {
try {
FileWriter fw = new FileWriter("/sys/misc/poweron_status");
fw.write("0x5a");
fw.close();
Log.i(TAG, "---------stop");
} catch (IOException e) {
e.printStackTrace();
new AlertDialog.Builder(this).setMessage(e.getMessage())
.setPositiveButton("OK", null).show();
}
}
//修改文件
private void onReboot() {
try {
FileWriter fw = new FileWriter("/sys/misc/poweron_status");
fw.write("0x87");
fw.close();
Log.i(TAG, "---------onReboot");
} catch (IOException e) {
e.printStackTrace();
new AlertDialog.Builder(this).setMessage(e.getMessage())
.setPositiveButton("OK", null).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mHandler.removeMessages(SHUT_DOWN);
mHandler.removeMessages(PLAY_VIDEO);
}
}