public class MainActivity extends Activity {
private Button bu1;
private Camera camera;
private Parameters parameters;
private static boolean kaiguan = true;
public int back = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout container = (LinearLayout)findViewById(R.id.Acc);
new AdView(this,container).DisplayAd();
bu1=(Button)findViewById(R.id.bu1);
bu1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(kaiguan){
bu1.setBackgroundResource(R.drawable.on);
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
kaiguan = false;
}else{
bu1.setBackgroundResource(R.drawable.off);
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
kaiguan = true;
camera.release();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
menu.add(0,1,1,"關於");
menu.add(1,2,2,"退出");
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case 1:
AlertDialog.Builder b = new Builder(MainActivity.this);
b.setTitle("關於");
b.setMessage("卡卡手電做出最簡潔的應用 作者:某人");
b.setCancelable(true);
b.setNegativeButton("確定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int which) {
d.dismiss();
}
});
b.show();
break;
case 2:
Myback();
break;
}
return super.onOptionsItemSelected(item);
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
back++;
switch (back) {
case 1:
Toast.makeText(MainActivity.this, "再按一次退出卡卡手電", Toast.LENGTH_LONG).show();
break;
case 2:
back = 0;//初始化back值
Myback();
break;
}
return true;//設置成false讓back失效 ,true表示 不失效
}
else{
return super.onKeyDown(keyCode, event);
}
}
public void Myback(){
if(kaiguan){//開關關閉時
MainActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());//關閉進程
}else if(!kaiguan){//開關打開時
camera.release();
MainActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());//關閉進程
kaiguan = true;//避免,打開開關後退出程序,再次進入不打開開關直接退出時,程序錯誤
}
}
}
<!-- 打開Camera的權限 -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.autofocus"/>
<!-- 開啓閃光燈權限 -->
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>