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

接着上一篇文章,这篇文章主要说一些,这四个按钮的点击事件。所有的点击事件都是在我自己写的那个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的对象,所以让我往这个方向去想了。
好了,以上就是对这三个按钮的点击事件,省电模式暂时没有需求,所以就没有做,后期做的话再更新!
希望能帮到有需要的童鞋~
以上都是本人按照自己做出来的效果写出来的心得,希望能帮助到有需要的童鞋~~如有雷同纯属巧合!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值