android关机广播
1. android 接受开机广播
Android接收开机广播,需要用到播广播接收者BroadcastReceiver组件。
具体代码:
在配置文件AndroidManifest.xml中向系统注册receiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>需要添加相应权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在Receiver中就可以添加开机需要进行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}}
2. android 怎么让设备关机
//广播方式关机重启
case R.id.shutdown_btn1:
Log.v(TAG, "broadcast->shutdown");
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
//其中false换成true,会弹出是否关机的确认窗口
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
break;
case R.id.reboot_btn1:
Log.v(TAG, "broadcast->reboot");
Intent intent2 = new Intent(Intent.ACTION_REBOOT);
intent2.putExtra("nowait", 1);
intent2.putExtra("interval", 1);
intent2.putExtra("window", 0);
sendBroadcast(intent2);
break;
3. android 系统关机 调用什么方法
系统关机,可以发送一个广播,如下代码:
一. 发送广播方式
Broadcast是Android的四大基本组件之一,也就是我们常说的广播。Android系统本身就包含了许多广播,时时刻刻在监听着系统中注册的每一个广播并随时准备响应操作。其中,就有关于关机或重启的广播:Intent.ACTION_REQUEST_SHUTDOWN和Intent.ACTION_REBOOT,通过发送这两个广播,Android就能自动接收广播,并响应关机或
public static final String ACTION_REBOOT =
"android.intent.action.REBOOT";
public static final String ACTION_REQUEST_SHUTDOWN = "android.intent.action.ACTION_REQUEST_SHUTDOWN";
Intent.java位于源码/frameworks/base/core/java/android/content/Intent.java下面。具体实现方法如下
//广播方式关机重启
case R.id.shutdown_btn1:
Log.v(TAG, "broadcast->shutdown");
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
//其中false换成true,会弹出是否关机的确认窗口
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
break;
case R.id.reboot_btn1:
Log.v(TAG, "broadcast->reboot");
Intent intent2 = new Intent(Intent.ACTION_REBOOT);
intent2.putExtra("nowait", 1);
intent2.putExtra("interval", 1);
intent2.putExtra("window", 0);
sendBroadcast(intent2);
break;
需要注意的几点是:
第一,如前面所说,需要将APP提升至系统权限,具体做法是在AndroidMenifest.xml中添加如下代码
android:sharedUserId="android.uid.system"
第二,同时需要添加关机权限
<uses-permission android:name="android.permission.SHUTDOWN"></uses-permi
4. 安卓开发 如何关闭广播
很牛逼的一个问题。广播不是用来关闭的!动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。我们可以通过两种方式注册BroadcastReceiver,一是在Activity启动过程中通过代码动态注册,二是在AndroidManifest.xml文件中利用<receiver>标签进行静态注册。对于第一种方法,我们需要养成一个良好的习惯:在Activity进入停止或者销毁状态的时候使用unregisterReceiver方法将注册的BroadcastReceiver注销掉。如果通过第二种方法注册的BroadcastReceiver,是否需要通过代码进行注销呢?如果通过<receiver>标签来注册的BroadcastReceiver,那么该对象的实例在onReceive被调用之后就会在任意时间内被销毁。也就是说,我们并需要担心静态注册的BroadcastReceiver的销毁问题。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。
5. Android开发问题。 怎么得到关机之前的一个数据
可以利用广播 开机有一个guang'b广播 只发送一次 android.intent.action.BOOT_COMPLETED
关机广播 android.intent.action.ACTION_SHUTDOWN
6. 如何解决App无法收到android开机广播
今天发现在android2.2时写的一款程序运行在android4.0上的时候无法接受开机广播(ACTION_BOOT_COMPLETED)。
后来发现是没有添加<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>的问题。
在3.1以前,android对自启动管理不是很严格,只要你的BroadcastReceiver的IntentFilter声明了<action android:name="android.intent.action.BOOT_COMPLETED" />
就可以接收到开机广播。但是在android3.1对程序的自启动进行了规范(官方文档请点击此处)。
假如我们没有指定use-permission就无法收到开机广播。
如果你也碰到了这个问题,检查一下自己是不是忘记添加permission了吧^_^
7. android 断电下会不会发送关机广播
操作步骤:
1、在手机的桌面空白处长按,待手机桌面上出现菜单后松开;
2、选择“Android小组件”选项
3、在弹出的菜单中选择自己想要添加的桌面插件就可以了。
删除插件的方法也是非常的简单,你只要在想删除的插件上面长按一会,待手机震动后,拖动桌面插件到屏幕的最下方,就能够删除桌面插件了。
8. android 长按10秒关机所发的intent
android关机开机都会发送广播。
关机广播:android.intent.action.ACTION_SHUTDOWN
开机广播:android.intent.action.BOOT_COMPLETED
9. android接受不到开机广播
intent
判断
intent.getAction()是否与
android.intent.action.BOOT_COMPLETED
相同,发出的是这个,你没监听这个Action
。
另外注意的是,如果是
3.1以下的系统,没问题。3.1以上的系统,需要有Activity存在,并且启动一次程序,才能够实现广播。
10. android APP不启动能接收到系统广播吗
从Android4.0之后就不能接收系统开机广播了必须用户打开你的应用才能启动你的服务