安卓关机(2)

来源:互联网 发布:淘宝不包邮地区有哪些 编辑:程序博客网 时间:2024/05/16 11:36

第二种方法是用安卓内部的一个api接口:


 package com.norco.shutdown;






import android.os.SystemClock;


import android.app.Activity;


import android.content.Context;


import android.content.Intent;


import android.os.Bundle;


import android.os.PowerManager;


import android.view.Menu;


import android.view.View;


import android.view.View.OnClickListener;


import android.widget.Button;


import android.widget.TimePicker;


import android.widget.TimePicker.OnTimeChangedListener;






import java.text.Format;  


import java.util.Calendar;    


import android.app.AlarmManager;  


import android.app.PendingIntent;  


import android.app.TimePickerDialog;  


import android.content.Intent;  ;  


import android.widget.Toast;  




import java.io.IOException;
import android.app.AlertDialog;






public class ShutdownActivity extends Activity {






private Button sureButton,cancelButton;


//private TimePicker myTimePicker1,myTimePicker2;


        private Calendar calendar =Calendar.getInstance();


protected void onCreate(Bundle savedInstanceState) 


{


super.onCreate(savedInstanceState);


setContentView(R.layout.shutdown_layout2);


/*


myTimePicker1 = (TimePicker)findViewById(R.id.myTimePicker1);


myTimePicker2 = (TimePicker)findViewById(R.id.myTimePicker2);


//ÉèÖÃÏÔΪ24СʱÖÆ


myTimePicker1.setIs24HourView(true);


myTimePicker2.setIs24HourView(true);


// ÉèÖóõÊŒÏÔʟʱŒä


myTimePicker1.setCurrentHour(00);


myTimePicker1.setCurrentMinute(00);


myTimePicker2.setCurrentHour(00);


myTimePicker2.setCurrentMinute(00);


myTimePicker1.setOnTimeChangedListener(new myTimePickerChangeListener());


myTimePicker2.setOnTimeChangedListener(new myTimePickerChangeListener());


           */


sureButton = (Button)findViewById(R.id.myButton1);


cancelButton = (Button)findViewById(R.id.myButton2);


sureButton.setOnClickListener(new ButtonOnClickListener());


cancelButton.setOnClickListener(new ButtonOnClickListener());






//====================================test=================================================================





Button okbutton1=(Button)findViewById(R.id.okbutton1);  


Button canclebutton1=(Button)findViewById(R.id.canclebutton1); 



  okbutton1.setOnClickListener(new View.OnClickListener() {  


 


public void onClick(View v) {  


//取得系统的时间的默认值  


calendar.setTimeInMillis(System.currentTimeMillis());  


int mHour=calendar.get(Calendar.HOUR_OF_DAY);  


int mMinute=calendar.get(Calendar.MINUTE);  


 


new TimePickerDialog(ShutdownActivity.this,new TimePickerDialog.OnTimeSetListener() {  


 


 


 


public void onTimeSet(TimePicker view, int hourOfDay, int minute) {  


 


//取得设置的时间  


calendar.setTimeInMillis(System.currentTimeMillis());  


calendar.set(Calendar.HOUR_OF_DAY,hourOfDay);  


calendar.set(Calendar.MINUTE, minute);  


calendar.set(Calendar.SECOND, 0);  


calendar.set(Calendar.MILLISECOND, 0);  


System.out.println("------------0-------");  


//设置到指定的时间提醒  


Intent intent =new Intent(ShutdownActivity.this,TimeReciever1.class);  


System.out.println("------------q1-------");  


//创建PendingIntent  


PendingIntent sender=PendingIntent.getBroadcast(ShutdownActivity.this, 1, intent, 0);  


// 设置PendingIntent自运行一次  


AlarmManager alarmManager;  


alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);  


alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), sender);  


 


//更新显示设置的闹钟时间  


String tmps=format(hourOfDay)+":"+format(minute);  


 


// toast 提示一下  


Toast.makeText(ShutdownActivity.this, "设置的关机时间为:"+tmps,Toast.LENGTH_LONG).show();  


   


}  


 


 


private String format(int x) {  


String s=""+x;  


if (s.length()==1) {  


s="0"+s;  


}  


return s;  


}  


}, mHour, mMinute, true).show();  


 


}  


});  






 


















      canclebutton1.setOnClickListener(new OnClickListener() {  


 


public void onClick(View v) {  


Intent intent=new Intent(ShutdownActivity.this,TimeReciever1.class);  


PendingIntent pendingIntent=PendingIntent.getBroadcast(ShutdownActivity.this, 1, intent, 0);  


//  


 


AlarmManager alarmManager;  


alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);  


alarmManager.cancel(pendingIntent);  


Toast.makeText(ShutdownActivity.this, "关机时间已取消...", 3).show();  


 


}  


 


}); 










//============================================================test=====================================


















































Button okbutton=(Button)findViewById(R.id.okbutton);  


      Button canclebutton=(Button)findViewById(R.id.canclebutton);  


      okbutton.setOnClickListener(new View.OnClickListener() {  


 


public void onClick(View v) {  


//取得系统的时间的默认值  


calendar.setTimeInMillis(System.currentTimeMillis());  


int mHour=calendar.get(Calendar.HOUR_OF_DAY);  


int mMinute=calendar.get(Calendar.MINUTE);  


 


new TimePickerDialog(ShutdownActivity.this,new TimePickerDialog.OnTimeSetListener() {  


 


 


 


public void onTimeSet(TimePicker view, int hourOfDay, int minute) {  


 


//取得设置的时间  


calendar.setTimeInMillis(System.currentTimeMillis());  


calendar.set(Calendar.HOUR_OF_DAY,hourOfDay);  


calendar.set(Calendar.MINUTE, minute);  


calendar.set(Calendar.SECOND, 0);  


calendar.set(Calendar.MILLISECOND, 0);  


System.out.println("------------0-------");  


//设置到指定的时间提醒  


Intent intent =new Intent(ShutdownActivity.this,TimeReciever.class);  


System.out.println("------------q1-------");  


//创建PendingIntent  


PendingIntent sender=PendingIntent.getBroadcast(ShutdownActivity.this, 0, intent, 0);  


// 设置PendingIntent自运行一次  


AlarmManager alarmManager;  


alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);  


alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);  


 


//更新显示设置的闹钟时间  


String tmps=format(hourOfDay)+":"+format(minute);  


 


// toast 提示一下  


Toast.makeText(ShutdownActivity.this, "设置的开机时间为:"+tmps,Toast.LENGTH_LONG).show();  


 


}  


 


 


private String format(int x) {  


String s=""+x;  


if (s.length()==1) {  


s="0"+s;  


}  


return s;  


}  


}, mHour, mMinute, true).show();  


 


}  


});  


     //取消闹钟  



        canclebutton.setOnClickListener(new OnClickListener() {  


 


public void onClick(View v) {  


Intent intent=new Intent(ShutdownActivity.this,TimeReciever.class);  


PendingIntent pendingIntent=PendingIntent.getBroadcast(ShutdownActivity.this, 0, intent, 0);  


//  


 


AlarmManager alarmManager;  


alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);  


alarmManager.cancel(pendingIntent);  


Toast.makeText(ShutdownActivity.this, "开机时间已取消...", 3).show();  


 


}  


 


}); 

















}










public boolean onCreateOptionsMenu(Menu menu) 


{


getMenuInflater().inflate(R.menu.shutdown_layout, menu);


return true;


}






class ButtonOnClickListener implements OnClickListener


{





public void onClick(View v) 


{


         


// Œì²âÄÄžö°ŽŒü±»°ŽÏÂ


//System.out.println(v.getId()+" is current button Id!");


if(R.id.myButton1 == v.getId())


{


/* ÖØÆôŽúÂë */


System.out.println("RebootButton pressed!");


PowerManager pManager=(PowerManager) getSystemService(Context.POWER_SERVICE);  


pManager.reboot("ÖØÆô");  


System.out.println("execute cmd--> reboot\n" + "ÖØÆô");





 


}





if(R.id.myButton2 == v.getId())


{


 
   System.out.println("ShutdownButton pressed!");


  Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);


   intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false); //false


   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);


   startActivity(intent);




}


}





}




}




同样也需要安卓第一部分那样添加后面两个特殊情况详情看安卓关机(1)





























原创粉丝点击