您的位置:首页 > 编程语言

安卓源代码修改之framework下面长按power键,修改安卓原生的关机、重启界面(二)

2016-03-15 10:33 337 查看
接着上一篇文章,这篇文章主要说一些,这四个按钮的点击事件。所有的点击事件都是在我自己写的那个Dialog_Activity2那个类中,但是想要把自己写的Activity跟源代码相结合(因为关机重启这类的真正的调用的对象都在源代码的DialogActions.java中的),必须发送广播给这个源代码的类,这样源代码才能接收到你的点击的事件,才能做相应的操作,当然,前提是在你想要发送的源代码中有广播接收器才可以的。

在我的Dialog_Activity2.java中有一个onClick()方法,

public void onClick(View v){

switch (v.getId()) {

case R.id.imageButton1:

//省电模式的按钮

break;

case R.id.imageButton2:

//情景模式的按钮

break;

case R.id.imageButton3:

//重启的按钮,发送广播给DialogActions.java中的广播接收器

//其他三个按钮就是慢慢的移动,直至消失,动画的XML自己写,然后让其他

//三个按 startAnimation即可

break;

case R.id.imageButton4:

//关机的按钮,发送广播给DialogActions.java中的广播接收器

//其他三个按钮就是慢慢的移动,直至消失,动画的XML自己写,然后让其他

//三个按 startAnimation即可

break;

}

}

DialogActions中的广播接收器中:

else if(action.equals(“Global_Reboot”)){ //重启

mWindowManagerFuncs.reboot(true); //源代码中重启的一行代码,直接借用就ok了

}else if(action.equals(“Global_ShutDown”)){ //关机

mWindowManagerFuncs.shutdown(false);////源代码中重启的一行代码,直接借用就ok

}

当然,广播怎么写,忘了的童鞋多多看资料吧~

上面就是重启跟关机的点击事件,还是比较简单的。接下来就是情景模式的点击事件了,我的需求是,点击情景模式之后其他三个按钮同时移动直至消失,并且弹出一个AlertDialog,这个AlertDialog还是单选框,代码如下:

AlertDialog.Builder build = new AlertDialog.Builder(Dialog_Activity2.this);

final String[] mode = {“响铃”,”震动”,”静音”};

build.setSingleChoiceItems(mode, num, new DialogInterface.OnClickListener()

{

@Override

public void onClick(DialogInterface dialog, int which)

{

SharedPreferences.Editor editor=sp.edit();

switch (which) {

case 0:

//发送广播给GlobalActions.java

editor.putInt(“num”, 0); //SharedPreferences存储选择的项

break;

case 1:

//发送广播给GlobalActions.java

editor.putInt(“num”, 1); //SharedPreferences存储选择的项

break;

case 2:

//发送广播给GlobalActions.java

editor.putInt(“num”, 2); //SharedPreferences存储选择的项

break;

}

editor.commit();

dialog.dismiss();

}

});

AlertDialog dialog=build.create();

dialog.show();

是的,在这里我用了SharedPreferences轻型数据库,作用就是,我每次选择情景模式的三个选项之一(”响铃”,”震动”,”静音”)的时候就会在SharedPreferences中存储我选择项的id,以便再一次打开的时候,是记住我上一次的选择的。SharedPreferences的使用,不是很清晰的童鞋也多多查资料~

然后发送广播之后在源代码GlobalActions.java中的广播接收器中:

else if(action.equals(“xiangling”)){

//响铃模式

mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

} else if(action.equals(“zhendong”)){

//振动模式

mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

} else if(action.equals(“jingyin”)){

//静音模式

mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

}

这三个代码是我自己写的,没有用到源代码的代码,就是自己对AudioManager的熟悉,就直接这么写了三行,然后就ok了,因为我发现源代码中有AudioManager的对象,所以让我往这个方向去想了。

好了,以上就是对这三个按钮的点击事件,省电模式暂时没有需求,所以就没有做,后期做的话再更新!

希望能帮到有需要的童鞋~

以上都是本人按照自己做出来的效果写出来的心得,希望能帮助到有需要的童鞋~~如有雷同纯属巧合!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息